So Hallo,
ich steh total auf dem Schlauch (Bin halt wohl doch ne noodle ^^)
Ich möchte eine ArrayList in einem Array abspeichern, allerdings kommt, beim generieren von dem Array folgende Exception:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.util.ArrayList;
Jetzt die frage...wo liegt der Fehler? Also hier noch ein paar Erklärungen.
Der Klasse wird ein Generischer Typ K übergeben und die ArrayList soll eben Objekte vom Typ K abspeichern.
Das Array soll die ArrayList enthalten...also in jedem Feld eine ArrayList.
Als Dekleration hab ich oben geschrieben:
Jetzt verwirrst Du mich. Möchtest Du ein Array von Listen haben? Das bedeutet, ein Feld in dem jedes Element eine Liste ist? So in etwa mutet Dein Quelltext an, kann ich mir aber bei Deiner Beschreibung nicht vorstellen.
Wenn Du nur alle Einträge aus einer Liste in ein Feld kopieren möchtest, geht das so:
Java:
List<String> list =newArrayList<String>();...Object[] objectArray = list.toArray();
... oder so ... [java=3]String[] stringArray = list.toArray(new String[list.size()]);[/code]
Ebenius
Aber du hast recht, also ich möchte ein Array von Listen. Also das Array soll eine Liste speichern.
Allerdings möcht ich nix hin oder her kopieren...es soll einfach nur erstellt werden!?
Hallo!
Auch wenn das Thema mittlerweile schon recht veraltet ist, habe ich gerade ein ähnliches Problem.
Um mein Problem nochmal zusammenzufassen:
Ich möchte ein Array mit ArrayListen erstellen. Das Erstellen funktioniert ja (wie auch oben beschrieben) z.B. wie folgt:
Java:
importjava.util.*;..ArrayList<Integer>[] test =newArrayList[5];
Würde hier in meinem Fall nur gerne wissen, wie ich einer dieser ArrayListen etwas hinzufüge.
Mit
Java:
test[3].add(5);
oder
Java:
test[3].add(newArrayList<Integer>());
usw. habe ich es schon versucht, jedoch immer mit einer NullPointerException als Ergebnis, was ich aber in dem Fall nicht unbedingt nachvollziehen kann.
Das Array wird aber wie jedes Object-Array mit Feldern die bloß auf 'null' zeigen intialisiert, anderst ist es ja auch kaum möglich.
Java:
ArrayList<Integer>[] test =newArrayList[5];// Array deklarieren und erzeugen.
test[3]=newArrayList<Integer>();// ArrayList erzeugen.
test[3].add(42);// Wert einfügen.
Es empfiehlt sich aber, ein Array vom List-Typ zu erzeugen. Das vereinfacht spätere Änderungen, z. B. zu LinkedList, du kannst auch direkt unterschiedliche Typen reinschreiben -> Polymorphie.