Nullpointer Exception bei Queue

Kirby.exe

Top Contributor
Ich muss gestehen, ich finde den Fehler im Pop nicht:

Code:
Exception in thread "main" java.lang.NullPointerException
    at javaStack.Queue.pop(Queue.java:37)
    at javaStack.QueueTest.main(QueueTest.java:11)

Java:
package javaStack;

public class Queue <T> {
    
    private Node<T> first;
    private Node<T> last;
    private int idTicker;
    
    public Queue() {
        first = null;
        last = null;
        idTicker = 0;
    }
    
    public void push(T data) {
        Node<T> newElement = new Node<T>(data, idTicker);
        if(first == null && last == null) {
            first = newElement;
            last = newElement;
            newElement.setPrevious(first);
            newElement.setNext(null);
            System.out.println("IF");
        }else {
            newElement.setPrevious(last);
            last = newElement;
            newElement.setNext(null);
            System.out.println("Else");
        }
        idTicker++;
    }
    
    public void pop() {
        if(first == null) {
            System.out.println("The Queue ist empty!");
        }else {
            Node<T> n = first.getNext();
            n.setPrevious(first);
            first = n;
        }
    }
    
    /*public void delete(int id) {
        Node<T> it = first;
        while(it.getNext() != null) {
            if(it.getID() == id) {
                Node<T> prev = it.getPrevious();
                Node<T> next = it.getNext();
                prev.setNext(it.getNext());
                next.setPrevious(prev);
            }
        }
    }*/
    
    public String toString() {
        StringBuilder result = new StringBuilder();
        for(Node<T> it = first; it.getNext() != null; it = it.getNext()) {
            System.out.println("Not Empty");
            result.append(it.getData()).append(" ");
        }
        return result.toString();
    }
}
Java:
package javaStack;

public class Node <T> {
    private T data;
    private int id;
    private Node <T> next;
    private Node <T> previous;
    
    public Node(T dataValue, int id){
        this.data = dataValue;
        this.next = null;
        this.previous = null;
        this.id = id;
    }
    
    public void setNext(Node <T> next) {
        this.next = next;
    }
    
    public Node <T> getNext(){
        return next;
    }
    
    public int getID() {
        return id;
    }
    
    public void setPrevious(Node <T> previous) {
        this.previous = previous;
    }
    
    public Node<T> getPrevious(){
        return previous;
    }
    
    public T getData() {
        return data;
    }
    
    @Override
    public String toString() {
        return data + "\n";
    }
}
 

httpdigest

Top Contributor
Java:
32  public void pop() {
33      if(first == null) {
34          System.out.println("The Queue ist empty!");
35      } else {
36          Node<T> n = first.getNext(); // <- liefert null
37          n.setPrevious(first); // <- NPE hier!
38          first = n;
39      }
40  }
Naja, offensichtlich liefert first.getNext() null und anschließend versuchst du auf dieser Nullreferenz setPrevious() aufzurufen.
Im push() setzt duch auch immer setNext(null).
 

Kirby.exe

Top Contributor
Java:
32  public void pop() {
33      if(first == null) {
34          System.out.println("The Queue ist empty!");
35      } else {
36          Node<T> n = first.getNext(); // <- liefert null
37          n.setPrevious(first); // <- NPE hier!
38          first = n;
39      }
40  }
Naja, offensichtlich liefert first.getNext() null und anschließend versuchst du auf dieser Nullreferenz setPrevious() aufzurufen.
Im push() setzt duch auch immer setNext(null).
Oh danke :)
 

Kirby.exe

Top Contributor
Also Nullpointer ist behoben, hatte mich mit previous etwas verwirrt, jedoch hatte previous irgendwie keinen Sinn....Es ist ja eine Queue und keine Linked List xD Eine Sache die mir jedoch noch etwas unklar ist, weshalb bei meinem Mini Test Code nicht alle Werte in die Queue geschrieben werden.

Output:
Code:
Kekse, DADA,
DADA,

Java:
package javaStack;

public class QueueTest {

    public static void main(String[] args) {
        Queue<String> test = new Queue<String>();
        test.push("Kekse");
        test.push("DADA");
        test.push("There");
        System.out.println(test.toString());
        test.pop();
        System.out.println(test.toString());
        

    }

}
Java:
package javaStack;

public class Queue <T> {
    
    private Node<T> first;
    private Node<T> last;
    private int idTicker;
    
    public Queue() {
        first = null;
        last = null;
        idTicker = 0;
    }
    
    public void push(T data) {
        Node<T> newElement = new Node<T>(data, idTicker);
        if(first == null && last == null) {
            first = newElement;
            last = newElement;
            newElement.setNext(null);
        }else {
            last.setNext(newElement);
            last = newElement;
            newElement.setNext(null);
        }
        idTicker++;
    }
    
    public void pop() {
        if(first == null) {
            System.out.println("The Queue ist empty!");
        }else {
            if(first.getNext() == null) {
                first = null;
                last = null;
            }else {
                Node<T> n = first.getNext();
                first = n;
            }
        }
    }
    
    
    public String toString() {
        StringBuilder result = new StringBuilder();
        for(Node<T> it = first; it.getNext() != null; it = it.getNext()) {
            result.append(it.getData());
            if(it.getNext() != null) {
                result.append(", ");
            }
        }
        return result.toString();
    }
}
Java:
package javaStack;

public class Node <T> {
    private T data;
    private int id;
    private Node <T> next;
    
    public Node(T dataValue, int id){
        this.data = dataValue;
        this.next = null;
        this.id = id;
    }
    
    public void setNext(Node <T> next) {
        this.next = next;
    }
    
    public Node <T> getNext(){
        return next;
    }
    
    public int getID() {
        return id;
    }
    
    public T getData() {
        return data;
    }
    
    @Override
    public String toString() {
        return data + "\n";
    }
}
 

httpdigest

Top Contributor
Guck dir nochmal ganz genau die Bedingung deiner for-schleife in der toString() Methode an. Du prüfst, ob der aktuell auszugebende Node einen next hat. Der letzte Node hat ja keinen next. Heißt: Diese Bedingung ist falsch/ungeeignet.
 

Kirby.exe

Top Contributor
Ahhh ich verstehe, macht ja auch Sinn xD Jetzt läufts xD Ich glaube ich habe irgendwie beim schreiben der toString meinen Gedanken gewechselt und dann passiert sowas xD
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Kann ich die Nullpointer Exception umgehen Allgemeine Java-Themen 12
D Nullpointer Exception Problem Allgemeine Java-Themen 5
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
0 Animiertes Gif anzeigen - NullPointer Exception Allgemeine Java-Themen 19
B Nullpointer Exception in Array Allgemeine Java-Themen 15
H Nullpointer exception, Attribute in Label schreiben? Allgemeine Java-Themen 4
G Nullpointer Exception nach KeyPressed Allgemeine Java-Themen 6
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
T Nullpointer. :( Allgemeine Java-Themen 31
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
I NullPointer während while(){} Allgemeine Java-Themen 4
G Nullpointer trotz vorherigem Nullcheck Allgemeine Java-Themen 2
V Array aus Instanzen, NullPointer Allgemeine Java-Themen 4
E YQL Api Test - NullPointer Allgemeine Java-Themen 9
A Compiler-Fehler Woher kommt der NullPointer? (Collections & Iterator) Allgemeine Java-Themen 7
D Nullpointer abfangen Allgemeine Java-Themen 7
H NullPointer finde den grund nicht Allgemeine Java-Themen 9
Z NullPointer in einem VO Allgemeine Java-Themen 14
M Nullpointer Exeption bei String Array Allgemeine Java-Themen 9
A NullPointer bei System.getProperty("file.seperator") Allgemeine Java-Themen 4
A NullPointer bei konvertierung von byteArr --> Object Allgemeine Java-Themen 3
medic NullPointer verwirrt mich total. Allgemeine Java-Themen 3
G NullPointer. in einer Datenstruktur Allgemeine Java-Themen 2
G NullPointer ? wieso? Allgemeine Java-Themen 7
W Queue.remove() -> no such element exception Allgemeine Java-Themen 17
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
N A java Exception has occured Allgemeine Java-Themen 8
G javafx "class path" exception Allgemeine Java-Themen 5
H Interface PluginSystem ClassNotFound exception für library Klassen Allgemeine Java-Themen 10
tom.j85 Exception bei Abfrage von Ländercodes in API? Allgemeine Java-Themen 13
S Exception Allgemeine Java-Themen 5
LimDul Streams und Exception Allgemeine Java-Themen 8
C FileLock - Exception wird immer geworfen Allgemeine Java-Themen 4
S Wertbeschränkung Exception oder Anpassung? Allgemeine Java-Themen 4
R Schlüsselworte "Throw new exception" gibt nicht den String als Fehlermeldung aus Allgemeine Java-Themen 2
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
S RMI Exception Allgemeine Java-Themen 0
S MSSQL Exception & Connection String Allgemeine Java-Themen 19
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
coolian warum bekomme ich ein string index out of bounds exception Allgemeine Java-Themen 17
B Aufruf der Methode ergibt eine Exception Allgemeine Java-Themen 13
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
M Klassen Serializable Exception Allgemeine Java-Themen 1
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
E Thread Exception Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
X jvm exception abfangen und an externes Programm schicken Allgemeine Java-Themen 4
G Java/LibGDX File Loading Exception Allgemeine Java-Themen 2
B Exception in Application init method Allgemeine Java-Themen 5
H OOP Testen einer Exception mit JUnit Allgemeine Java-Themen 8
perlenfischer1984 Dialect class not found exception Allgemeine Java-Themen 15
Thallius Bekomme keine Exception mit Stacktrace mehr. Was habe ich getan? Allgemeine Java-Themen 13
perlenfischer1984 Functionsparameter prüfen und eine Exception werfen !? Allgemeine Java-Themen 11
E Probleme mit nextInt() und Exception Allgemeine Java-Themen 35
Z Exception wird nicht ausgelöst Allgemeine Java-Themen 2
T Konstruktor löst exception aus Allgemeine Java-Themen 7
KilledByCheese Dezimal nach Hexadezimal rechner wirft seltsame exception Allgemeine Java-Themen 4
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
D Codeausführung bevor Exception abgeschlossen ist Allgemeine Java-Themen 11
T FileNotFound Exception Allgemeine Java-Themen 9
L Exception/Error auf JDialog umleiten Allgemeine Java-Themen 2
C Arithmetic Exception, obwohl nichts 0 ist Allgemeine Java-Themen 5
M A Java Exception has occured. Allgemeine Java-Themen 1
J Exception in thread "main" java.lang.NoClassDefFoundError Allgemeine Java-Themen 4
M Exception in thread "AWT-EventQueue-0" Allgemeine Java-Themen 6
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
E A Java Exception Has Occured Allgemeine Java-Themen 4
T Exception handling Allgemeine Java-Themen 7
P lazy loading exception Allgemeine Java-Themen 0
A Interpreter-Fehler OutOfMemory Exception mit Base64 decode Allgemeine Java-Themen 3
S Java Applet Crash - Keine Exception Allgemeine Java-Themen 8
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
K Exception in thread "AWT-EventQueue-1" Allgemeine Java-Themen 2
K Gepacktes Jar-File gibt beim Doppelklick eine Exception aus Allgemeine Java-Themen 4
P Eigene Exception Klasse Allgemeine Java-Themen 7
N Java Interne Exception Allgemeine Java-Themen 4
B JUnit4 Exception-Test Allgemeine Java-Themen 4
127.0.0.1 SQL Exception, kein Driver Allgemeine Java-Themen 9
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
H java.util.Timer und Funktion mit SQL Exception Allgemeine Java-Themen 5
Ollek Barcode mit Barcode4J erzeugen - Exception Allgemeine Java-Themen 4
Z Concurrent Modification Exception - HashMap (kein remove) Allgemeine Java-Themen 4
E Eigene Exception Klasse erstellen Allgemeine Java-Themen 3
L Variablen IO Exception weil File angeblich nicht exisitert Allgemeine Java-Themen 10
T Exception versus Rückgabeparamter Allgemeine Java-Themen 26
S Exception enableDepthTest Allgemeine Java-Themen 7
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
W Kleine Frage zu Null-Pinter-Exception Allgemeine Java-Themen 21
aze JUnit: Testen ob bestimmte Exception nicht auftritt Allgemeine Java-Themen 18
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
P Default constructor cannot handle exception type Allgemeine Java-Themen 6
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
S Bildaufbau durch Servlet -> Exception Allgemeine Java-Themen 11
E Queue: Wie kann hier ein null-Pointer Exception auftreten?! Allgemeine Java-Themen 11
S Exception beim Schreiben des Dataset in XML Datei Allgemeine Java-Themen 8
M Webstart Exception trotz signierten JARs Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben