Nodes/LinkedList und insert funzt net

Status
Nicht offen für weitere Antworten.

mamelinchen

Bekanntes Mitglied
Hab meine eigne LinkedList geschrieben.

Bloss es gibt nen Fehler:

Meine insert-Methode funzt net, kann mir einer sagen , warum?

Code:
public class LinkedList implements List{
    
    protected Node head;
    protected Node tail;

    public LinkedList(){
        this.head=new Node(null,tail);
        this.tail=new Node(null,tail);
    }
    
        protected class Node{
            
            public Node next;
            public Person person;
            
            public Node (Person person,Node next){
                this.next=next;
                this.person=person;
            }
            
            public Node getNext(){
                return this.next;
            }
            
            public Person getPerson(){
                return this.person;
            }
        }
und die insert:

Code:
    public void insert(int i,Person person) {
        if (i <= 0) {
            throw new IndexOutOfBoundsException();
        } else if (head.next == tail) {
            Node nu = new Node(person, tail);
            head.next = nu;
        } else {
            Node f;
            int stelle = 0;
            for (f = head.getNext(); f == tail; f = f.getNext()) {
                stelle++;
                if (stelle > i) {
                    Node g = new Node(person, f.getNext());
                    g.next = f;
                }
            }
        }
    }
Dazu
Code:
LinkedList alpha = new LinkedList();
Person hugo=new Person("Hugo","Dietrich","1296","15478");
alpha.insert(1, hugo);
 

SebiB90

Top Contributor
ein Problem ist, dass du head vor tail initialisierst.
Somit übergibst den Node als next nicht das tail, das du später initialisierst, sondern null. Daher trifft die Bedingung head.next == tail nicht ein.
 

SebiB90

Top Contributor
Noch eine Sache. Bzw mehrere: Die allgemeine Implementierung sieht mir noch bissel komisch aus. Vorallem das f == tail kann nicht stimmen in der for schleife. Du solltest bedenken, dass die Bedingung, die du da angibst, eine Solange-Bedingung (sprich solange es wahr ist, führe die schleife aus) und keine Abbruch-Bedingung (sobald das eintrifft, breche ab) ist.
 

mamelinchen

Bekanntes Mitglied
so,habs geändert, er geht auch jetzt rein, aber die toString-Methode macht mir Probleme und ich bin schon wieder Programmier-Blind ???:L

Code:
    public String toString() {
        String string = "[";
        Node stg = head.next;
        while (stg != null) {
            [B]string += stg.getPerson().toString();[/B] //Null-Pointer-Exception???:L
            stg = stg.getNext();
            if (stg != null){
                string += ", ";
            }
        }
        return string + "]";
    }

ich hab doch eingefügt, oder nicht?
 

SebiB90

Top Contributor
du hast bei dir immer 2 Nodes (head und tail) die keinen Inhalt haben und daher gibt getPerson() null zurück und daher die exception ;)
 

mamelinchen

Bekanntes Mitglied
ja aber ich denke ich hab den neuen Node mit der Person mit insert eingefügt oder nicht?


das funzt auch net:

Code:
    public String toString() {
        String string = "[";
        Person hugo=new Person("Hugo","Dietrich","1296","15478");
        Node a=new Node(hugo,tail);
        
        while (a != null) {
            string += a.getPerson().toString();
            a = a.getNext();
            if (a != null){
                string += ", ";
            }
        }
        return string + "]";
    }
 

SebiB90

Top Contributor
-.-
ich sagte doch du hast 2 nodes die immer als person null sind.
also insgesamt haste 3 Nodes head, inserted, tail.
deine liste sieht dann so aus
head = Node[person=null, next=inserted]
inserted = Node[person=Person("Hugo","Dietrich","1296","15478"), next=tail]
tail = Node[person=null, next=null]

also durchlaufen wir jetzt mal deine schleife (die du als erstes geschrieben hast)
  • stg wird auf head.next also auf inserted gesetzt (stg=inserted)
  • stg ist ungleich null
  • da holst du dann die Person("Hugo","Dietrich","1296","15478") raus und hängst es an String.
  • stg wird auf stg.next gesetzt, also auf tail
  • stg ist immer noch ungleich null
  • stg.getPerson() liefert aber null, da stg = tail ist und tail hat keine Person gesetzt(siehe oben) -> Exception
 

mamelinchen

Bekanntes Mitglied
willn reverse machen.

ein hinten dran hängen und den vorne weg. funzt net ganz.

wo ist das problem?

Code:
    public void reverse2() {
        for (int k = size(); k > 0; k--) { 
            insert(k, head.next.person); 
            for (int i = 1; i <size()-i; i++){
                remove(i); 
            }
        }
    }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Eigene LinkedList und Nodes Java Basics - Anfänger-Themen 20
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
R XML mit unsortierten Nodes lesen Java Basics - Anfänger-Themen 4
A Anzahl nodes in einem Tree Java Basics - Anfänger-Themen 2
M Warum wird mein Icon bei den JTree Nodes nicht angezeigt? Java Basics - Anfänger-Themen 7
A LinkedList implementieren Java Basics - Anfänger-Themen 32
M Wie kann ich den Index i von einer LinkedList überprüfen? Java Basics - Anfänger-Themen 36
Düsseldorf2002 Datentypen Verschachtelte LinkedList Java Basics - Anfänger-Themen 5
Düsseldorf2002 Datentypen Zwei dimensionale LinkedList Java Basics - Anfänger-Themen 8
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
G Java LinkedList Java Basics - Anfänger-Themen 6
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
S Mit einer LinkedList vorwärts und rückwärts iterieren Java Basics - Anfänger-Themen 6
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
G Java LinkedList Java Basics - Anfänger-Themen 3
B LinkedList add-Methode Java Basics - Anfänger-Themen 10
F Windows in LinkedList registrieren Java Basics - Anfänger-Themen 3
A Hilfe, LinkedList Java Basics - Anfänger-Themen 2
H Knoten-Reihenfolge einer LinkedList invertieren Java Basics - Anfänger-Themen 11
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
O Hashmap, ArrayList, LinkedList Java Basics - Anfänger-Themen 7
P Quellcode LinkedList Java Basics - Anfänger-Themen 2
F Collection Aufgabe mit LinkedList Java Basics - Anfänger-Themen 3
N Hilfe bei verknüpfter Liste - Linkedlist Java Basics - Anfänger-Themen 11
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
C ArrayList vs LinkedList vs ? Java Basics - Anfänger-Themen 15
C LinkedList vs. ArrayList Java Basics - Anfänger-Themen 15
O LinkedList zu ArrayList Java Basics - Anfänger-Themen 4
M LinkedList elemente löschen Java Basics - Anfänger-Themen 2
L Problem mit LinkedList Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
P Hashmap anstatt LinkedList? Java Basics - Anfänger-Themen 6
TechGirl LinkedList - kurze allgemeine Frage Java Basics - Anfänger-Themen 17
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
L LinkedList Comparable < > MEHRFACH implementieren? Java Basics - Anfänger-Themen 3
S LinkedList mit Input vergleichen. Java Basics - Anfänger-Themen 5
C Bei der LinkedList auf Palindrom überprüfen Java Basics - Anfänger-Themen 4
F Element aus LinkedList löschen Java Basics - Anfänger-Themen 3
A LinkedList: Probleme beim Auslesen Java Basics - Anfänger-Themen 2
T Collections LinkedList<LinkedList<T>> - Implementierung Java Basics - Anfänger-Themen 10
S Jfreechart mit LinkedList befüllen Java Basics - Anfänger-Themen 1
S JTable LinkedList <Objekt> befüllen Java Basics - Anfänger-Themen 1
K LinkedList aus Arrays ( Lösungsraum Mastermind ) Java Basics - Anfänger-Themen 5
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
Farbenfroh int in LinkedList einsortieren Java Basics - Anfänger-Themen 4
W Klassen LinkedList funktioniert nicht Java Basics - Anfänger-Themen 6
X LinkedList - Index eines Objekts Java Basics - Anfänger-Themen 2
S Strings in eine LinkedList schreiben und auslesen? Java Basics - Anfänger-Themen 4
D Sortieren von int Werten von Objekten in einer LinkedList, kann nicht auf int Werte zugreifen Java Basics - Anfänger-Themen 3
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
T Datentypen gleichmäßiges mischen von 2 LinkedList Java Basics - Anfänger-Themen 3
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
J Datentypen Array von einer LinkedList Java Basics - Anfänger-Themen 5
R LinkedList Java Basics - Anfänger-Themen 8
J Per I/O Streams in LinkedList oder ArrayList schreiben/lesen Java Basics - Anfänger-Themen 6
B LinkedList remove Java Basics - Anfänger-Themen 5
J statische Methoden auf eine LinkedList initialisieren? Java Basics - Anfänger-Themen 5
G Hausaufgabe mit LinkedList und LinkedListStack verstehen Java Basics - Anfänger-Themen 6
N LinkedList-checkForComodification Java Basics - Anfänger-Themen 11
N LinkedList Java Basics - Anfänger-Themen 17
P LinkedList sortieren Java Basics - Anfänger-Themen 20
P LinkedList - Stack ... grundlegende Frage Java Basics - Anfänger-Themen 5
Z Erste Schritte LinkedList Werte abfragen und vergleichen Java Basics - Anfänger-Themen 3
B SUCHE: Threadsafe LinkedList Java Basics - Anfänger-Themen 10
Binary.Coder Wie linkedlist für Djikstra nutzen? Java Basics - Anfänger-Themen 6
M Arrays in LinkedList Java Basics - Anfänger-Themen 4
R Collections Probleme mit contains()-Methode [LinkedList] Java Basics - Anfänger-Themen 5
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
M LinkedList aktuelle position Java Basics - Anfänger-Themen 3
G Frage zu LinkedList Java Basics - Anfänger-Themen 15
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
I LinkedLIst / ArrayList Konstruktor Java Basics - Anfänger-Themen 4
B Collections RandomAccessfile & Linkedlist Java Basics - Anfänger-Themen 4
S Speichermangel ArrayList/LinkedList Java Basics - Anfänger-Themen 3
V LinkedList size() Java Basics - Anfänger-Themen 2
darekkay Datentypen HashSet bzw. LinkedList mit Werten initialisieren Java Basics - Anfänger-Themen 3
D Probleme mit LinkedList Java Basics - Anfänger-Themen 6
L LinkedList vorgänger Knoten zurück geben Java Basics - Anfänger-Themen 4
S LinkedList indexOf() - geht des irgendwie schneller? Java Basics - Anfänger-Themen 23
S LinkedList<String[]> filtern und sortieren Java Basics - Anfänger-Themen 9
W LinkedList Java Basics - Anfänger-Themen 12
S Frage zum speichern der Daten in einer LinkedList Java Basics - Anfänger-Themen 2
D Fenster in LinkedList verwalten Java Basics - Anfänger-Themen 2
C HashMap mit LinkedList Java Basics - Anfänger-Themen 5
S Datentypen LinkedList Konstruktor, add Alternative Java Basics - Anfänger-Themen 2
truesoul LinkedList Problem Java Basics - Anfänger-Themen 6
M Java Generics LinkedList Java Basics - Anfänger-Themen 5
H LinkedList Element an Stelle x ausgeben? Java Basics - Anfänger-Themen 5
D LinkedList aufrufe Java Basics - Anfänger-Themen 3
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
S Serialized LinkedList aus Datei Laden Java Basics - Anfänger-Themen 15
S LinkedList Java Basics - Anfänger-Themen 2
M LinkedList in anderer Klasse nutzen Java Basics - Anfänger-Themen 4
L LinkedList sortieren Java Basics - Anfänger-Themen 5
L heap space, LinkedList umspeichern Java Basics - Anfänger-Themen 15
H LinkedList mit Strings Exception Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben