Maison >Java >javaDidacticiel >Comment le comportement de « Arrays.asList() » a-t-il changé en Java depuis la version 1.4.2 ?
Tableaux en listes en Java : évolution du comportement
En Java, la conversion de tableaux en listes est une tâche courante. Cependant, le comportement de la méthode Arrays.asList() a subi des changements importants depuis Java SE 1.4.2.
Comportement avant Java 1.5
Avant Java 1.5, Arrays.asList() a renvoyé une liste contenant les éléments réels du tableau. Par exemple :
int[] numbers = { 1, 2, 3 }; List<Integer> list1 = Arrays.asList(numbers);
Dans ce cas, list1 contiendrait les éléments 1, 2 et 3.
Comportement dans Java 1.5 et versions ultérieures
À partir de Java 1.5, le comportement de Arrays.asList() a changé. Il renvoie désormais une liste de taille fixe contenant une référence au tableau d'origine. Résultat :
int[] numbers = { 1, 2, 3 }; List<Integer> list2 = Arrays.asList(numbers);
Dans ce cas, list2 contiendrait un seul élément : le tableau lui-même numérote.
Raison du changement
Le changement de comportement a été apporté pour renforcer la sécurité du type. Étant donné que les listes ne peuvent pas contenir de types primitifs comme int, la liste renvoyée doit être de type List
Implications pour le code existant
Code écrit avant Java 1.5 s'appuyant sur sur l'ancien comportement d'Arrays.asList() devra peut-être être modifié. Par exemple, l'assertion suivante échouerait dans Java 1.5 et versions ultérieures :
Assert.assertTrue(Arrays.asList(numbers).indexOf(4) == -1);
Conversion de tableaux en listes de types primitifs
Pour convertir un tableau de types primitifs en une liste de la classe wrapper correspondante, vous pouvez utiliser la technique suivante :
Integer[] numbers = new Integer[] { 1, 2, 3 }; List<Integer> list = Arrays.asList(numbers);
Cela créera une liste de Objets entiers contenant les valeurs du tableau.
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!