Maison > Java > javaDidacticiel > Comment la méthode `Arrays.asList()` de Java a-t-elle changé depuis Java SE 1.4.2 et comment puis-je la contourner ?

Comment la méthode `Arrays.asList()` de Java a-t-elle changé depuis Java SE 1.4.2 et comment puis-je la contourner ?

Susan Sarandon
Libérer: 2024-12-12 18:39:11
original
486 Les gens l'ont consulté

How Has Java's `Arrays.asList()` Method Changed Since Java SE 1.4.2, and How Can I Work Around It?

Conversion d'un tableau en liste en Java : découverte des modifications post-1.4.2

Lors de la conversion de tableaux en listes en Java, vous avez peut-être rencontré comportement inattendu dû aux modifications apportées à la méthode Arrays.asList() de Java SE 1.4.2 à 8. Cet article approfondit ces modifications et fournit une solution pour garantir une conversion de liste cohérente entre les versions.

Comportement avant la version 1.4.2 : conversion de tableaux en listes

Avant Java SE 1.4.2, les tableaux La méthode .asList() convertit facilement les tableaux en listes mutables. Par exemple, l'extrait de code suivant créerait une liste contenant les éléments 1, 2, 3 :

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

Comportement post-1.4.2 : tableaux enveloppés dans des listes

À partir de Java SE 1.5.0, le comportement de Arrays.asList() a considérablement changé. Au lieu de convertir le tableau en une liste de ses éléments, il renvoie désormais une liste wrapper non modifiable qui contient un seul élément : le tableau d'origine. Ce comportement a été introduit pour empêcher la modification de la liste, ce qui pourrait potentiellement conduire à des résultats imprévisibles.

Par conséquent, l'extrait de code précédent se comporte désormais différemment, renvoyant une liste contenant le tableau 'numbers' :

int[] numbers = new int[] { 1, 2, 3 };
List<int[]> list = Arrays.asList(numbers); // Note: <> should be omitted
Copier après la connexion

Solution de contournement : conversion de tableaux en listes de primitives Wrappers

Pour obtenir une liste mutable contenant les éléments individuels d'un tableau, vous pouvez convertir le tableau en une liste de la classe wrapper primitive correspondante. Par exemple, pour créer une liste d'objets Integer, vous utiliserez le code suivant :

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

Cette méthode garantit que la liste résultante contient les valeurs primitives plutôt que le tableau lui-même.

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