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);
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
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);
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!