Konvertierung eines Arrays in eine Liste in Java
Wie konvertiere ich in Java ein Array in eine Liste?
Ich habe die "Arrays.asList()" verwendet, aber das Verhalten (und die Signatur) irgendwie von Java SE 1.4.2 (Dokumente jetzt im Archiv) zu 8 geändert und die meisten Schnipsel, die ich im Web gefunden habe, verwenden das 1.4.2 Verhalten.
Zum Beispiel:
int[] spam = new int[] { 1, 2, 3 };
Arrays.asList(spam)
- unter 1.4.2 gibt eine Liste mit den Elementen 1, 2, 3 zurück
- auf 1.5.0+ gibt eine Liste zurück, die das Array spam enthält
In vielen Fällen sollte es leicht zu erkennen sein, aber manchmal kann es sich unbemerkt einschleichen:
Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);
948
3
In Ihrem Beispiel liegt es daran, dass Sie keine Liste eines primitiven Typs haben können. Mit anderen Worten: "Liste" ist nicht möglich.
Sie können jedoch eine
Liste
haben, indem Sie die KlasseInteger
verwenden, die das Primitivumint
umhüllt. Konvertieren Sie Ihr Array in eineListe
mit derArrays.asList
Utility Methode.Sehen Sie sich diesen Code live auf IdeOne.com an.
Das Problem ist, dass varargs in Java5 eingeführt wurde und unglücklicherweise wurde
Arrays.asList()
auch mit einer vararg-Version überladen. So wird "Arrays.asList(spam)" vom Java5-Compiler als vararg-Parameter von int-Arrays verstanden.Dieses Problem wird in Effective Java 2nd Ed. in Kapitel 7, Punkt 42 ausführlicher erklärt.
müssen Sie in ein Array werfen