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
Libérer: 2024-12-06 05:36:15
original
269 Les gens l'ont consulté

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 :

1

2

int[] numbers = { 1, 2, 3 };

List<Integer> list1 = Arrays.asList(numbers);

Copier après la connexion

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 :

1

2

int[] numbers = { 1, 2, 3 };

List<Integer> list2 = Arrays.asList(numbers);

Copier après la connexion

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 :

1

Assert.assertTrue(Arrays.asList(numbers).indexOf(4) == -1);

Copier après la connexion

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 :

1

2

Integer[] numbers = new Integer[] { 1, 2, 3 };

List<Integer> list = Arrays.asList(numbers);

Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal