L'énigme Arrays.asList() : comprendre ses limites
En Java, la méthode Arrays.asList fournit un moyen pratique de convertir un tableau dans une liste. Cependant, lorsqu'il s'agit de tableaux primitifs, tels que float[], nous rencontrons une anomalie.
Cet extrait de code fonctionne comme prévu, créant une liste d'objets Integer :
List<Integer> list = Arrays.asList(1,2,3,4,5);
Sur le d'un autre côté, le code suivant ne parvient pas à créer une List
int[] ints = new int[] {1,2,3,4,5}; List<Integer> list = Arrays.asList(ints);
Au lieu de cela, la sortie est un List
Arrays.asList accepte un paramètre varargs, qui est un raccourci syntaxique pour un tableau. Cependant, dans le cas des primitives, il traite l'ensemble du tableau comme un seul élément au lieu de chaque valeur primitive. Cela donne une liste contenant un tableau de primitives, plutôt que des valeurs primitives individuelles enveloppées sous forme d'objets.
Malheureusement , il n'existe pas de moyen simple de convertir un int[] en List
L'autoboxing convertit généralement les primitives dans leurs objets wrapper correspondants pour une utilisation dans les collections d'objets. Cependant, lorsqu’elle est appliquée à des tableaux de primitives, cela ne se produit pas au niveau des éléments. Cette limitation provient du fait que le boxing automatique des tableaux n'est pas pris en charge en Java.
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!