Maison > Java > javaDidacticiel > Pourquoi Arrays.asList() ne fonctionne-t-il pas avec les tableaux primitifs ?

Pourquoi Arrays.asList() ne fonctionne-t-il pas avec les tableaux primitifs ?

DDD
Libérer: 2025-01-03 07:06:39
original
703 Les gens l'ont consulté

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

Arrays.asList() et tableaux primitifs

Lorsque vous tentez de convertir un tableau de données primitives en une liste à l'aide de Arrays.asList( ), on peut rencontrer des incohérences. Cet article explore le problème et propose des solutions.

Explication du problème

La méthode Arrays.asList() accepte les arguments variables qui représentent un tableau. Cependant, il ne prend pas en charge les types de données primitifs tels que int[], contrairement aux types de référence comme Integer[]. En conséquence, le deuxième exemple fourni :

int[] ints = new int[] {1,2,3,4,5};
List<Integer> list = Arrays.asList(ints);
Copier après la connexion

renvoie une List, pas une List.

Autoboxing

L'Autoboxing, qui convertit les types de données primitifs en leurs homologues wrapper, ne s'applique pas aux tableaux de primitives. Par conséquent, le tableau int[] n'est pas automatiquement converti en tableau Integer[].

Solution

Pour résoudre ce problème, on peut exploiter des bibliothèques tierces telles que comme méthode com.google.common.primitive.Ints.asList de Guava. Il crée une liste de valeurs encadrées à partir d'un tableau primitif. Alternativement, on peut créer manuellement un tableau Integer[] et attribuer des valeurs à partir du tableau int[], c'est-à-dire

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);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal