hinzufügen von leeren Liste
So, ich habe eine leere Liste, wie so
List<Node> nodes = null;
und dann möchte ich hinzufügen, dass "Knoten"s in es
try {
File file = new File("test.txt");
Scanner scanner = new Scanner(file);
while (true){
String first= scanner.next();
if (first.equals("-1")){
break;
}
Node node1= new Node(first, first);
if (nodes==null){
nodes.add(node1);
}
if (nodes!=null){
if(nodes.contains(node1)){
nodes.add(node1);
}
}
So offensichtlich tun .enthält einen null-Liste gibt mir eine exception error, aber warum tun
if (nodes==null){
nodes.add(node1);
}
gibt mir auch eine null-pointer-Fehler?
Wie es scheint, leere Listen sind unveränderlich. Wie kann ich noch eine Liste mit Struktur und immer noch bauen es von leer?
InformationsquelleAutor sujinge9 | 2011-11-30
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht eine leere Liste dies ist eine Liste der Verweis ist iniitalized auf null. Sie wollen eher:
oder ähnliches. Dies gibt Ihnen eine leere Liste.
EDIT: Nach der änderung in der Frage, diese Logik ist komplett Durcheinander:
Was Sie hier sagen, ist, dass, wenn Knoten == null (die es jetzt nicht), dann versuchen Sie, fügen Sie den Knoten der Liste. Wenn es nicht null ist, und 1 ist schon in der Liste (was es nicht ist), dann fügen Sie Sie der Liste. Sie können ersetzen Sie die obigen Zeilen mit:
die sagt, wenn der Knoten existiert nicht in der Liste, fügen Sie es hinzu.
InformationsquelleAutor Matthew Farwell
Sie Speicher auf der Liste:
nodes = new ArrayList<Node>();
vor dem hinzufügen eines Knotens. Sie versuchen, einen Knoten hinzufügen, um eine null-Liste, d.h. das hinzufügen eines Knotens zu nichts.List
Schnittstelle 🙂Hoppla, Sollte
ArrayList
oder ähnliches. Ich werde mein edit beantworten. Cheers.InformationsquelleAutor Chris Parton
Müssen Sie initalize die Liste zunächst
Beispiel:
Aber es ist wirklich besser, eine leere Liste statt eines nicht initialzed (null) Liste.
Also statt:
List<Node> nodes = null;
habenList<Node> nodes = new ArrayList<Node>();
dann können Sie entfernen die kompletteif
und immernodes.add(node1);
, egal ob es die erste oder zweite element ist.InformationsquelleAutor Ralph
wenn
nodes
istnull
können Sie nicht tun nichts mit ihm. Initialisierennew ArrayList<Node>()
. Dies ist nun eine leere Liste.InformationsquelleAutor Bozho
Dies ist, weil Sie nicht instanziiert Ihrem Objekt "Knoten".
Fügen Sie die folgende Zeile ein und es sollte funktionieren :
Beachten Sie auch Sie können nicht instanziieren Liste Objekte. Nutzen Sie So etwas wie ArrayList/LinkedList etc.
InformationsquelleAutor Petar
Initialisieren, um ein neues Objekt(leer) sollte helfen.
List
es hat einArrayList
oderLinkedList
etc.natürlich! Vielen Dank für hinzuweisen. Noch im C# - Modus denke ich mal 🙂
Haha keine sorgen. Ich habe ein Kommentar erzählt mir das gleiche mit meiner Antwort. Ich bin im C++ - Modus.
InformationsquelleAutor abhinav
dies ist sicher ein null-Zeiger-Ausnahme als
nodes
null istmeinst du
Auch Liste initialisieren
InformationsquelleAutor M S
Du
node
istnull
so dies ist der Fehler, wie alle sagten... das ist die meisten common-Programmierung Fehler für immer einnull pointer exception
. Ist es besser Sie verwenden findbug plugin mit dem eclipse; es wird nicht damit Sie zum erstellen dieser Art von Fehler. Auch wird es einfacher für Sie, um das problem zu erkennen.InformationsquelleAutor amod