Linked List Programm add Problem

G

_Gerret_

Gast
Hi,

Ich hab ein Problem beim programmieren einer LinkedList.
Ich bin mir ziemlich sicher, dass das Programm funktionieren sollte.

Class: List.java
Java:
package linkedList;

public class List {
    private ListPart root;
    private int length;

    void add(ListPart part) {
        ListPart list = root;
        if (root == null) {
            root = part;
        } else {
            while (list.next != null) {
                list = list.next;
            }
            list.next = part; //<-- Problem!!
        }
        length++;
    }

    public int getLength() {
        return length;
    }

    public boolean isEmpty() {
        if (length == 0) {
            return true;
        }
        return false;
    }

    @Override
    public String toString() {
        return "List [root=" + root + "]";
    }
    
    public static void main(String[] args) {
        List l1 = new List();
        ListPart i1 = new ListPart("Apple");
        l1.add(i1);
        l1.add(i1);
        
        System.out.println(l1);
    }
}

Class: ListPart.java
Java:
package linkedList;

class ListPart {
    ListPart next;
    String name;

    ListPart(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "ListPart [next=" + next + ", name=" + name + "]";
    }
}

Es wird an der gekennzeichneten Stelle(im erstem source), auf einmal nur mehr "Apple"s eingefügt.
Der zweite source ist die "ListPart" Klasse, die einen ListenTeil beschreibt.

Der Debugger(Bild unten) zeigt mir das die List(rechts oben) mit Apples gefüllt ist.

s2hc7wo6.png


Ich verwende eclipse und java 7(habe es in java 6 auch versucht).
Ich danke euch für jede Hilfe! :)
 

TKausL

Top Contributor
Hallo,

da du 2 mal das selbe Element addest Wird Element.next zu Element. Das heißt, das Element zeigt auf sich selbst, was keinen Sinn ergibt.
Normalerweise gehört die "ListPart" als InnerClass in die Liste, und NUR die liste selbst erstellt sich dann ein Element, wenn du etwas addest.

Java:
package linkedList;
 
public class List {
    private ListPart root;
    private int length;
 
    void add(String part) {
        ListPart list = root;
        if (root == null) {
            root = new ListPart(part);
        } else {
            while (list.next != null) {
                list = list.next;
            }
            list.next = new ListPart(part); //<-- Problem!!
        }
        length++;
    }
 
    public int getLength() {
        return length;
    }
 
    public boolean isEmpty() {
        if (length == 0) {
            return true;
        }
        return false;
    }
 
    @Override
    public String toString() {
        return "List [root=" + root + "]";
    }
    
    public static void main(String[] args) {
        List l1 = new List();
        l1.add("Apple");
        l1.add("Apple");
        l1.add("Cherry");
        
        System.out.println(l1);
    }
class ListPart {
    ListPart next;
    String name;
 
    ListPart(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return "ListPart [next=" + next + ", name=" + name + "]";
    }
}
}

So in etwa, ungetestet...
 
B

...ButAlive

Gast
Hallo,

Dein Problem liegt hier drin:

Java:
  List l1 = new List();
  ListPart i1 = new ListPart("Apple");
  l1.add(i1);
  l1.add(i1);

Du fügst 2 mal das selbe Element hinzu, damit ist
Code:
li.next = li
und du hast einen Kreis.

mit:

Java:
  List l1 = new List();
  ListPart i1 = new ListPart("Apple");
  l1.add(i1);
  ListPart i2 = new ListPart("Pear");
  l1.add(i2);

Sollte es so funktionieren, wie du erwartest.
 
G

_Gerret_

Gast
danke,

auf das wäre ich im leben nie gekommen.
vielen dank butalive und tkausl :DD

Lösung:
Java:
    public static void main(String[] args) {
        List l1 = new List();
        ListPart i1 = new ListPart("Apple");
        ListPart i2 = new ListPart("Banana");
        ListPart i3 = new ListPart("Cranberry");
        l1.add(i1);
        l1.add(i2);
        l1.add(i3);

        System.out.println(l1);
    }

Ausgabe:
List [root=ListPart [next=ListPart [next=ListPart [next=null, name=Cranberry], name=Banana], name=Apple]]

noch eine frage am rande:
wie füge ich jetzt zb 2 äpfel in die list ein.

mfg _Gerret_
 

Volvagia

Top Contributor
Java:
ListPart i1 = new ListPart("Two Apples");
l1.add(i1);
:D

Java:
ListPart i1 = new ListPart("Apple");
ListPart i2 = new ListPart("Apple");
l1.add(i1);
l1.add(i2);

oder

Java:
for(int i = 0; i < 2; i++) {
	l1.add(new ListPart("Apple"));
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Linked List set-Methode Java Basics - Anfänger-Themen 2
G Linked list, Methode zum Vertauschen von Elementen Java Basics - Anfänger-Themen 14
T KlausurÜbung- Förderband-Linked List Java Basics - Anfänger-Themen 53
hooked Verkettete Liste / linked list Java Basics - Anfänger-Themen 2
S Methoden Linked List Methoden können nicht aufgerufen werden Java Basics - Anfänger-Themen 1
L Linked List - Array List Java Basics - Anfänger-Themen 2
SexyPenny90 Implementierung einer doubly linked list Java Basics - Anfänger-Themen 5
S Synchronisieren einer Linked List Java Basics - Anfänger-Themen 16
E Linked List generisch Java Basics - Anfänger-Themen 5
H Linked List sortieren Java Basics - Anfänger-Themen 9
B Linked-List Java Basics - Anfänger-Themen 2
T einfügen bei einer Linked List Java Basics - Anfänger-Themen 8
J linked list add ? Java Basics - Anfänger-Themen 2
J linked list Java Basics - Anfänger-Themen 13
M Beispiel für Linked List Java Basics - Anfänger-Themen 9
G Linked List mit Interface erstellen Java Basics - Anfänger-Themen 10
N Linked list sortieren Java Basics - Anfänger-Themen 8
K Java Linked List Java Basics - Anfänger-Themen 11
W löschen in einer single linked list Java Basics - Anfänger-Themen 3
M Linked List schreiben und lesen Java Basics - Anfänger-Themen 4
Gaudimagspam Linked Liste Java Basics - Anfänger-Themen 4
G (Linked)HashMap sortieren Java Basics - Anfänger-Themen 1
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
J Array.list vergleichen Java Basics - Anfänger-Themen 1
B Vektor vs List Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
L Datentypen Array List Java Basics - Anfänger-Themen 9
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
I Methoden List.contains() beim 2. Element = true Java Basics - Anfänger-Themen 1
N HashMap in List good practice? Java Basics - Anfänger-Themen 2
B SWAP List; Liste neu anordnen Java Basics - Anfänger-Themen 4
W Stream Array List - Frage Java Basics - Anfänger-Themen 5
E Interface List nicht als Collection an erkannt. Java Basics - Anfänger-Themen 14
X Array List geordnet ausgeben. (JSF und JAVA) Java Basics - Anfänger-Themen 1
D new arraylist (List) dynamisch erstellen Java Basics - Anfänger-Themen 1
Yjuq Generic Methode - Wie muss die List Definition aussehen? Java Basics - Anfänger-Themen 3
M List<String> auswählen Java Basics - Anfänger-Themen 42
F In List Rekursiv suchen Java Basics - Anfänger-Themen 12
B Unterschied zwischen (List<T> a) und (T[] a) Java Basics - Anfänger-Themen 7
T HashSet in List-Object Java Basics - Anfänger-Themen 5
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
E Array-list mit einer bestimmten Länge Java Basics - Anfänger-Themen 17
B Sorting List und Remove Java Basics - Anfänger-Themen 2
B String: suche nach Wörter und in List<String> speichern Java Basics - Anfänger-Themen 3
M Methode überladen - Array List Java Basics - Anfänger-Themen 5
L LIST.ADD Java Basics - Anfänger-Themen 2
M XWPF - Bullet Point list erstellen Java Basics - Anfänger-Themen 1
I <List> sortieren Java Basics - Anfänger-Themen 2
N Klassen List-Art Java Basics - Anfänger-Themen 5
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
Salo Datentypen "Doppelt" List(e) ("gesucht") Java Basics - Anfänger-Themen 6
F .csv Export aus einer list Java Basics - Anfänger-Themen 25
D Komischer Fehler nach <Integer> List Java Basics - Anfänger-Themen 2
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
T List und ArrayList Java Basics - Anfänger-Themen 3
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
T Datentypen InputStream to list of Int (or similar) Java Basics - Anfänger-Themen 4
D Input/Output CSV Parser list unvollständig Java Basics - Anfänger-Themen 25
V Erste Schritte Dateinamen aus einer FIle[] in eine List Java Basics - Anfänger-Themen 11
U JAXB - List wird nicht ausgefüllt Java Basics - Anfänger-Themen 1
J Einfach verkettet List: Ausgabe ohne null Java Basics - Anfänger-Themen 11
D Bestimmten Wert aus Array List ausgeben Java Basics - Anfänger-Themen 7
V Personenverwaltung mit List<>, falsche Ausgaben Java Basics - Anfänger-Themen 5
M List befüllen Java Basics - Anfänger-Themen 3
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
P Anlegen und Abfragen von Array List Java Basics - Anfänger-Themen 4
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
A Wie nutze ich List<List<String>> Java Basics - Anfänger-Themen 4
M Endlos schleife in List Java Basics - Anfänger-Themen 5
P Zufallszahlen ohne zahlen einer List Java Basics - Anfänger-Themen 21
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
S Probleme bei Ausgabe von rekursiver Methode (List) Java Basics - Anfänger-Themen 16
T Tabstopp in AWT-List? Java Basics - Anfänger-Themen 8
P Doppelte Einträge in eine List Java Basics - Anfänger-Themen 5
M Wozu Upcasting? Am Beispiel List = ArrayList Java Basics - Anfänger-Themen 2
A List mit integern füllen Java Basics - Anfänger-Themen 4
D sortieren von List<> Java Basics - Anfänger-Themen 2
B List - Drag&Drop Java Basics - Anfänger-Themen 8
C List Abfragenproblem Java Basics - Anfänger-Themen 3
J List als anonyme Klasse Java Basics - Anfänger-Themen 9
H Collections List in List<SpecificType> als stat. generische Methode zurückgeben Java Basics - Anfänger-Themen 4
F Wozu braucht man array list? Java Basics - Anfänger-Themen 29
T Collections Wie funktioniert List() ? Java Basics - Anfänger-Themen 7
Kenan89 Java Date List Java Basics - Anfänger-Themen 4
tux20 Problem beim Schreiben von List to File Java Basics - Anfänger-Themen 2
K Frage Set List Java Basics - Anfänger-Themen 3
M Array List ausgeben Java Basics - Anfänger-Themen 13
C Typen aus List<Object[]> ändern Java Basics - Anfänger-Themen 7
S Gute List Implementation Java Basics - Anfänger-Themen 5
A List Array - wie instanzieren Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben