Maison >Java >javaDidacticiel >Comment le comportement de « Arrays.asList() » a-t-il changé en Java depuis la version 1.4.2 ?

Comment le comportement de « Arrays.asList() » a-t-il changé en Java depuis la version 1.4.2 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-06 05:36:15253parcourir

How Has the Behavior of `Arrays.asList()` Changed in Java Since 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!

Déclaration:
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