Datentypen List.toString wirft NullPointerException

Streijost

Mitglied
Hi hier noch ein Beitrag von mir.
Ich hab gerade ein wenig mit den Erben von List und List persönlich liebkost, bin dann aber eiskalt abgeblitzt. ;(


[JAVA=42]
public class ListenKummer{

private static List arraylist = new ArrayList<String>();
private static List linkedlist = new LinkedList<String>();
private static TreeMap<String,String> treemap = new TreeMap<String,String>();
private static Random rnd = new Random();



public static void main(String[] args) {
listenfueller(arraylist);
listenfueller(linkedlist);
mapfueller(treemap);
System.out.println(arraylist.toString());
List arraylistsublist = Listtools.extractSubList(arraylist, 76,888);
List arraylistsublist2 = Listtools.extractSubList(arraylist, 0,1);
List arraylistintersection = Listtools.intersection(arraylistsublist, arraylistsublist2);
System.out.println(arraysublist);
System.out.println(arraylistsublist2);
System.out.println(arraylistintersection);
System.out.println("-------------------------------------------------------");
System.out.println(linkedlist.toString());
List linkedlistsublist = Listtools.extractSubList(linkedlist, 76,888);
List linkedlistsublist2 = Listtools.extractSubList(linkedlist, 0,1);
List linkedlistintersection = Listtools.intersection(linkedlistsublist, linkedlistsublist2);
System.out.println(linkedlistsublist);
System.out.println(linkedlistsublist2);
System.out.println(linkedlistintersection);
System.out.println("-------------------------------------------------------");
System.out.println(treemap.toString());
System.out.println("-------------------------------------------------------");
}

//befuellt Listen!
private static void listenfueller(List t){
System.out.println("Liste: "+t.getClass()+" wird befuellt!");
for(int i=0; i<30000; i++ ){
t.add(""+rnd.nextInt(54365));
}
}
//befuellt Maps!
private static void mapfueller(Map t){
System.out.println("Map: "+t.getClass()+" wird befuellt!");
for(int i=0; i<30000; i++){
t.put(rnd.nextInt(54365), null);
}
}






}

public class Listtools {

//----------------------------------------------------------------
//----------------------------------------------------------------
//----------------------------------------------------------------
//public Methoden.

/**
* Erstellt eine unterliste aus den Elementen
* der Liste li die zwischen start und end liegen.
* **/
public static List extractSubList(List li, int start, int end){
List subli = null;
System.out.println("extractSubList-li: "+li.toString());
System.out.println("extractSubList-li-Size: "+li.size());
if(!(li.size()==0)){
if(start<=0)
start=0;
if(end>=li.size())
end = li.size()-1;
int index = 0;
for(int i = start; i<=end ;i++){
subli.add(index, li.get(i));
index++;
System.out.println("extractSubList-subli: "+subli.toString());
System.out.println("extractSubList-subli-Size: "+subli.size());
}
return subli;
}else{
return new ArrayList<Object>();
}
}
/**
* Ueberfuehrt beide Listen in eine
* und gibt diese zurueck.
* **/
public static List intersection(List l1, List l2){
List combined = null;

Iterator l1Iter = l1.iterator();
while(l1Iter.hasNext()){
Object obj1 = l1Iter.next();
Iterator l2Iter = l2.iterator();
while(l2Iter.hasNext()){
Object obj2 = l2Iter.next();
if(!(obj1.equals(obj2)))
combined.add(obj1);
}
}
Iterator l2Iter = l2.iterator();
while(l2Iter.hasNext()){
Object obj2 = l2Iter.next();
combined.add(obj2);
}
return combined;
}
/**
* Fuegt c sortiert in die Liste li (vorsortiert)
* ein.
* **/
public static void addSorted(List li, Comparable c){
boolean hinzugefuegt = false;
Iterator liIter = li.iterator();
// heangt c an beliebige Stelle.
while(liIter.hasNext()){
Object any = liIter.next();
if(c.compareTo(any)>=0){
li.add(li.indexOf(any), c);
hinzugefuegt = true;
}

}
//haengt c an letzte Stelle.
if(hinzugefuegt==false){
li.add(c);
}
}

//----------------------------------------------------------------
//----------------------------------------------------------------
//----------------------------------------------------------------
}
[/code]


in der Klasse ListUtils bei
Java:
public static List extractSubList(List li, int start, int end)
wirft mir der Aufruf
Java:
 System.out.println(li.toString())
eine NullPointerException.
Ich raffe aber nicht wieso.

Danke für eure Zeit.
 

turtle

Top Contributor
Die NPE wird in folgender Zeile geworfen!:noe:

Java:
subli.add(index, li.get(i));

Und das ist ja auch nicht verwunderlich, wenn man 8 Zeilen früher sich anschaut
Java:
List subli = null;
 

Streijost

Mitglied
Die NPE wird in folgender Zeile geworfen!:noe:

Java:
subli.add(index, li.get(i));

Und das ist ja auch nicht verwunderlich, wenn man 8 Zeilen früher sich anschaut
Java:
List subli = null;

Oh mann wie konnte ich das bloß übersehen :rtfm: dank dir.
Das war mal ein sehr schludriger Beitrag von mir.

Obwohl ich jetzt das problem habe, wie ändere ich die Zeile
Java:
List subli = null;
So dass, ich keine Instanz einer spezifischen Liste erzeuge, ich möchte nämlich ein Objekt vom typ Listzurueckgeben.
Wenn ich die Zeile
Java:
subli.add(index, li.get(i));
zu
Java:
subli.add(li.get(i));
bekomme ich ja wieder eine NPE also muss ich
Java:
List subli = null;
Instanzieren mit new.

Hast du ne Idee wie ich das am komfortabelsten lösen kann so dass, List li in die Methode extractSubList geht und eine List x zurueckgegeben wird?
 
Zuletzt bearbeitet:

Streijost

Mitglied
Ok hab die Lösung für mein Problem und werde sie mal mit euch teilen.


[Java]
List sublist = new ArrayList<Object>();
...
...
return (List) sublist;
[/Java]

ist das getan funktioniert der Rest der extraktSublist und Intersection Methode.:applaus:
 

turtle

Top Contributor
List sublist = new ArrayList<Object>();
Das ist übrigens der "normale" und richtige Programmierstil.:toll:

Es wird das Interface angegeben und mit einer realen Klasse instanziert. Also hier List, kann irgendeine List sein und du nimmst eine ArrayList als Implementierung. Solltest übrigens List<Object> schreiben;)

Dieses bedeutet, das du in Methoden immer auch List als Parameter angibst und nicht ArrayList!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
T Linked List set-Methode Java Basics - Anfänger-Themen 2
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
G Linked list, Methode zum Vertauschen von Elementen Java Basics - Anfänger-Themen 14
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
T KlausurÜbung- Förderband-Linked List Java Basics - Anfänger-Themen 53
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
hooked Verkettete Liste / linked list Java Basics - Anfänger-Themen 2
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
S Methoden Linked List Methoden können nicht aufgerufen werden Java Basics - Anfänger-Themen 1
U JAXB - List wird nicht ausgefüllt Java Basics - Anfänger-Themen 1
L Linked List - Array List Java Basics - Anfänger-Themen 2
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
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
SexyPenny90 Implementierung einer doubly linked list Java Basics - Anfänger-Themen 5
G Linked List Programm add Problem Java Basics - Anfänger-Themen 5
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
S Synchronisieren einer Linked List Java Basics - Anfänger-Themen 16
A List Array - wie instanzieren Java Basics - Anfänger-Themen 7
T List mit mehreren gleichen Strings bereinigen Java Basics - Anfänger-Themen 4
R List to BinaryTree Java Basics - Anfänger-Themen 13
P Set mit List vergleichen Java Basics - Anfänger-Themen 8
Binary.Coder List bzw. ArrayList als String ausgeben Java Basics - Anfänger-Themen 2
J Datentypen List - gleiche Einträge bei neuen Objekten Java Basics - Anfänger-Themen 31
T List.add(Object) führt zu NullPointerException Java Basics - Anfänger-Themen 14
M Collections Cast bei ArrayList (List) Java Basics - Anfänger-Themen 2
B List list - anstatt ArrayList list = new ArrayList Java Basics - Anfänger-Themen 10
H Remove Methode von List Java Basics - Anfänger-Themen 6
T Datentypen List<?> Java Basics - Anfänger-Themen 5
E Linked List generisch Java Basics - Anfänger-Themen 5
S Einen neuen String ohne Array oder List erzeugen??? Java Basics - Anfänger-Themen 13
S List angaben in textfelder Java Basics - Anfänger-Themen 7
D List<String[]> initialisieren Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben