Maison > Java > javaDidacticiel > Pourquoi Arrays.asList() se comporte-t-il mal avec les tableaux primitifs en Java ?

Pourquoi Arrays.asList() se comporte-t-il mal avec les tableaux primitifs en Java ?

Susan Sarandon
Libérer: 2024-12-20 01:13:08
original
810 Les gens l'ont consulté

Why Does Arrays.asList() Misbehave with Primitive Arrays in Java?

Pourquoi Arrays.asList() peut être délicat avec les primitives

La méthode Arrays.asList() de Java vous permet de convertir un tableau en un Liste. Cependant, il peut se comporter de manière inattendue avec les tableaux primitifs.

Question :Pourquoi Arrays.asList(int[]) renvoie-t-il une liste au lieu de List?

Réponse : Les génériques Java ne prennent pas en charge les types primitifs. Au lieu de cela, ils utilisent leurs classes wrapper (par exemple, Integer, Float). Arrays.asList() renvoie une liste exactement du même type que le tableau qui lui est transmis. Puisque int[] est un tableau de int, le résultat est List.

Question : Existe-t-il un moyen de convertir un int[] en List

Réponse : Non, il n'existe aucun moyen direct de convertir un int[] en une liste en utilisant Arrays.asList().

Question : Pourquoi la boxe automatique ne fonctionne-t-elle pas dans ce cas ?

Réponse : La boxe automatique ne se produit que pour les individus valeurs primitives, pas pour les tableaux de primitives. Par conséquent, les int[] ints ne peuvent pas être automatiquement convertis en Integer[].

Solution :

Pour obtenir une liste à partir d'un tableau de primitives, vous pouvez utiliser des bibliothèques tierces qui fournissent des fonctionnalités supplémentaires, telles que la méthode com.google.common.primitive.Ints.asList() de Guava. Cette méthode crée explicitement un wrapper List autour du tableau int[], où chaque élément est encadré comme un entier.

Alternativement, si vous êtes libre de commencer avec un tableau Integer[], vous pouvez utiliser Arrays.asList () directement car cela renverrait une liste.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal