Definieren ein array von Listen von Ganzzahlen in Java
Ich habe ein array. Für jedes element des Arrays möchte ich zum speichern von mehreren ganzen zahlen. Ich weiß, dass in C kann ich ein array von integer-Zeiger, und verwenden diesen Zeiger, um eine Liste.
In Java, damit kann ich ein array des Objekts 'A', wo A hat eine Liste von Ganzzahlen. Aber warum kann ich nicht etwas tun, wie dieses
List<Integer>[] arr = new ArrayList<Integer>[]();
Bekomme ich:
Type mismatch: cannot convert from ArrayList zu List[]
- jedes element des Arrays ist eine Liste.
- Ich denke, dass müssen Sie möglicherweise formulieren Sie Ihre Frage. Vor allem der code extrahieren Sie die geliefert wird, ist nicht korrekt. Sie kann nicht instanziiert werden arrays von generischen Typen.
- Sie sollten in der Lage sein, um ein array von arraylists, es ist ein calss wie jeder andere
- Sie könnte aber auch ein 2-dimensionales array von ints
- Nein, ArrayList ist die parametrisierte (generische), und daher kann man nicht machen-arrays mit ihm.
InformationsquelleAutor Kraken | 2015-04-27
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie in der Regel zu vermeiden, mischen collections und arrays zusammen, aus diesem Grund; ein array ist kovariante (das ist
Integer[]
ist-einObject[]
), aber Sammlungen (und Generika im Allgemeinen) sind invariante (das heißt, eineList<Integer>
ist nicht einList<Object>
).Können Sie auf jeden Fall eine Liste erstellen von Listen statt, die gewährleisten, geben Sicherheit und Sie erhalten rund um das Thema erstellen eines generischen array:
Wie gesagt in Java-eigene Dokumentation, Sie können nicht erstellen Sie ein array von Generika.
Einer
ArrayList
ist einList
, aber einArrayList
ist nicht einList[]
Wenn Sie möchten, ein Array von Listen, halten zahlen, würde ich vorschlagen:
Es stellt sich heraus, Sie können keine arrays von parametrisierten Typen, nach den oracle-docs.
new ArrayList<Integer>[10]
aber Sie können eine variable deklarieren, die alsList<Integer>[] intListArray
. SoList<Integer>[] intListArray = new ArrayList[10];
wird ein array erstellt, in denen nurList<Integer>
. (siehe example)Es sei denn, Sie wissen, für sicher, Sie wollen einen endlichen array, ich schlage vor, Sie tun so etwas wie
List<List<Integer>> arr = new ArrayList<List<Integer>>();
Wenn Sie wirklich wollen, eine Reihe von
Lists
dann werden Sie wollen, um zu sehen, diese Java Frage zu ArrayList<Integer>[] xErstellen eines Arrays von
List
ist nicht anders als das erstellen eines Arrays mit jedem anderen Objekt. Sie können beliebige der folgenden Schritte aus:Oder:
Beachten Sie, dass Sie sind beschränkt in dem, was Sie tun können, mit Generika auf arrays.
Wenn Sie möchten, ein array zu erstellen, in denen bis zu zehn
List<Integer>
deklarieren Sie das array auf diese Weise.folgende Zuordnung ist gültig
in der Erwägung, dass folgende wird nicht mit einem Kompilierungsfehler
schlägt die Kompilierung fehl mit
Als ich fand, müssen Sie ein array von arrays.
Sie können dies tun, um Ihren inneren arrays:
sind und Sie dann in ein anderes array wie dieses:
oder
vielleicht ist es besser, es zu tun mögen dieses:
nachdem alle ich empfehle dir dieses zu Lesen:
Wie man ein array von arrays in Java
Graph-Implementierung mit Angrenzens Liste zeigt die Verwendung einer Array-Liste.
Wie Sie beobachten können, dass der Konstruktor der Klasse Graph, definiert das Array der Liste.
in der gleichen Konstruktor der Array-Liste ist initialisiert zu.
Hoffe, dass Es Hilfreich sein würde, um Ihr problem zu lösen und Anforderung !.