Conversion d'un tableau en ArrayList en Java
En Java, le processus de conversion d'un tableau en ArrayList peut parfois prêter à confusion, surtout si l'on considère les changements introduits dans Java SE 1.4.2. Cet article approfondit les subtilités de cette conversion, offrant une compréhension complète des options disponibles.
À l'origine, la méthode Arrays.asList() permettait de créer une ArrayList contenant les éléments d'un tableau. Cependant, ce comportement a été modifié dans Java SE 1.5.0, ce qui a conduit ArrayList à contenir le tableau lui-même.
Par exemple, considérez les extraits de code suivants :
Java SE 1.4 .2
int[] numbers = new int[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
Java SE 1.5.0
int[] numbers = new Integer[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
La différence notable réside dans le type d'ArrayList créé. Dans la version 1.4.2, list est une ArrayList contenant les valeurs entières 1, 2 et 3. Dans la version 1.5.0, list est une ArrayList contenant les numéros du tableau.
Cette distinction peut conduire à des résultats inattendus, tels que :
Assert.assertTrue(list.indexOf(4) == -1);
Bien que cette affirmation soit vraie dans la version 1.4.2, elle échoue dans la version 1.5.0 car list contient désormais les numéros du tableau, pas les valeurs Integer.
Pour éviter de tels problèmes et obtenir une ArrayList de valeurs Integer, une solution consiste à utiliser la classe Integer qui encapsule le type int primitif :
Integer[] numbers = new Integer[] { 1, 2, 3 }; java.util.List<Integer> list = Arrays.asList(numbers);
En utilisant la classe Integer, cette conversion crée une ArrayList contenant les valeurs Integer souhaitées.
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!