Ich habe eine Inventory Management App erstellt, in der der Benutzer Daten aus dem Inventar hinzufügen, anzeigen und löschen kann. Wenn der Benutzer A eingibt, fordert das Programm den Benutzer auf, Daten einzugeben. Wenn der Benutzer D eingibt, zeigt das Programm die Daten im Inventar an. Ich verwende LinkedList, um dies zu erreichen. Ich bin ziemlich neu dazu. Ich konnte Benutzer zur Eingabe von Daten auffordern, konnte sie jedoch nicht anzeigen. Es gibt eine rote Linie auf dem Code. Wo bin ich falsch gelaufen? Es tut mir leid, wenn die Art, wie ich frage, falsch ist. Korrigiere mich.Java LinkedList zur Anzeige von Daten
Main.java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = 0;
LinkedList myList = new LinkedList();
while(t != 1)
{
System.out.print("I, A, D");
char input = sc.next().charAt(0);
if(input == 'A')
{
System.out.print("Please enter item id: ");
int id = sc.nextInt();
sc.nextLine();
System.out.print("Please enter item name: ");
String name = sc.nextLine();
System.out.print("Please enter item type: ");
String type = sc.nextLine();
System.out.print("Please enter item price: ");
double price = sc.nextDouble();
sc.nextLine();
Item I1 = new Item(id, name, type, price);
myList.addItemToFront(I1);
}
else if(input == 'D')
{
myList.DisplayItem(); //at this point, theres red line which i dont know why?
}
}
LinkedList.java
class LinkedList {
private Node head; // first node in the linked list
private int count;
public int getCount() {
return count;
}
public Node getHead() {
return head;
}
public LinkedList() {
head = null; // creates an empty linked list
count = 0;
}
public void addFront(int n) {
Node newNode = new Node(n);
newNode.setLink(head);
head = newNode;
count++;
}
public void deleteFront() {
if (count > 0) {
head = head.getLink();
count--;
}
}
public void addItemToFront(Item I1)
{
Node itemNode = new Node(I1);
itemNode.setLink(head);
head = itemNode;
}
public void DisplayItem(Node head)
{
if(head == null)
{
return;
}
Node current = head;
while (current != null)
{
System.out.println(current.data.toString());
current = current.getLink();
}
System.out.println(current);
}
public int length(Node head)
{
if(head == null)
{
return 0;
}
int count = 0;
Node current = head;
while(current != null)
{
count++;
current = current.getLink();
}
return count;
}
Node.java
public class Node {
Object data;
private Node link;
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getLink() {
return link;
}
public void setLink(Node link) {
this.link = link;
}
public Node(Object data) {
this.data = data;
this.link = null;
}
}
Beispielausgabe
I, A, D
A
Please enter item id: 001
Please enter item name: Wooden Chair
Please enter item type: Furniture
Please enter item price: 50.30
I, A, D
D
001, Wooden Chair, Furniture, 50.30
„_But war it_ nicht in der Lage, um“ - würde helfen, wenn Sie in vollem Umfang die Eingabe und erwartete Ausgabe beschrieben. –
Es tut mir leid. Ganz neu dazu. Ich habe den Beitrag entsprechend bearbeitet. –
Sie können auch die Node-Klasse hochladen. Und auch eine empfohlene Praxis ist, die LinkedList-Klasse Generic für Typ Sicherheit zu machen, indem Sie die folgenden 'Klasse LinkedList' und machen die Knoten-Klasse allgemeiner. –