Heim > Java > javaLernprogramm > Warum funktioniert Arrays.asList() nicht mit primitiven Arrays?

Warum funktioniert Arrays.asList() nicht mit primitiven Arrays?

DDD
Freigeben: 2025-01-03 07:06:39
Original
703 Leute haben es durchsucht

Why Doesn't Arrays.asList() Work with Primitive Arrays?

Arrays.asList() und primitive Arrays

Beim Versuch, ein Array primitiver Daten mithilfe von Arrays.asList( )-Methode kann es zu Inkonsistenzen kommen. In diesem Artikel wird das Problem untersucht und Lösungen bereitgestellt.

Problemerklärung

Die Methode Arrays.asList() akzeptiert variable Argumente, die ein Array darstellen. Im Gegensatz zu Referenztypen wie Integer[] werden jedoch keine primitiven Datentypen wie int[] unterstützt. Als Ergebnis lieferte das zweite Beispiel Folgendes:

int[] ints = new int[] {1,2,3,4,5};
List<Integer> list = Arrays.asList(ints);
Nach dem Login kopieren

gibt eine Liste zurück, keine Liste.

Autoboxing

Autoboxing, das primitive Datentypen in ihre Wrapper-Gegenstücke konvertiert, gilt nicht für Arrays von Primitiven. Daher wird das int[]-Array nicht automatisch in ein Integer[]-Array konvertiert.

Lösung

Um dieses Problem zu lösen, kann man Bibliotheken von Drittanbietern nutzen, z als Guavas com.google.common.primitive.Ints.asList-Methode. Es erstellt eine Liste von Werten in Boxen aus einem primitiven Array. Alternativ kann man manuell ein Integer[]-Array erstellen und Werte aus dem int[]-Array zuweisen, d. h.

int[] ints = new int[] {1,2,3,4,5};
Integer[] integers = new Integer[ints.length];
for (int i = 0; i < ints.length; i++) {
    integers[i] = ints[i];
}
List<Integer> list = Arrays.asList(integers);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum funktioniert Arrays.asList() nicht mit primitiven Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage