[Java] Copie superficielle et copie complète lors de la conversion d'un tableau en liste

Il existe deux façons de créer un objet List à partir d'un tableau existant.

  1. Utilisez ```Arrays.asList `` `
  2. Utilisez le constructeur d'une classe d'implémentation List telle que ArrayList

Arrays.asList(Tableau)Si vous utilisez, ce sera une copie superficielle et vous passerez simplement la référence.


```arraylist```Si vous utilisez le constructeur de la classe d'implémentation de liste tel que, il s'agira d'un nouveau doublon.


### Arrays.asList
 Passez simplement une référence comme une copie superficielle.

```java
        // Arrays.asList()Juste passer une référence
        String[] ary = {"a", "b", "c"};
        List<String> list = Arrays.asList(ary);
        //  list.add("d"); // => java.lang.UnsupportedOperationException
        list.set(0, "e");
        System.out.println(Arrays.toString(ary)); //=> [e, b, c]La disposition originale a également changé.
        System.out.println(list);                 //=> [e, b, c]

Il est possible de changer l'élément avec set, mais soyez prudent car une erreur se produira si vous modifiez la structure d'un tableau existant tel que add.

Constructeur de classe d'implémentation de liste

Ce sera un nouveau doublon.


        //Créez-en un nouveau en l'instanciant avec une classe d'implémentation de List telle que ArrayList
        String[] ary2 = {"a", "b", "c"};
        List<String> list2 = new ArrayList<>(Arrays.asList(ary2));
        list2.add("d");
        list2.set(0, "e");
        System.out.println(Arrays.toString(ary2)); //=> [a, b, c]L'agencement d'origine est inchangé.
        System.out.println(list2);                 //=> [e, b, c, d]

Étant donné que le nouvel ArrayList <> ne peut pas être créé, il doit être converti une fois en objet List.

Recommended Posts

[Java] Copie superficielle et copie complète lors de la conversion d'un tableau en liste
[Java] Précautions lors de la conversion de paramètres d'argument de longueur variable dans un tableau
[Java] Déclarer et initialiser un tableau
[Java] Conversion d'un tableau à une liste
Convertir un tableau de chaînes en une liste d'entiers en Java
[Java] Conseils et problèmes d'erreur lors de la conversion du double en grand décimal
[Java] De deux listes à une liste de tableaux
Résumé des bons points et des précautions lors de la conversion de l'application Java Android vers Kotlin
[Java] Exemple de programme qui acquiert les valeurs maximum et minimum d'un tableau
Résumé en essayant d'utiliser Solr en Java et en obtenant une erreur (Solr 6.x)
Lors de l'utilisation d'une liste en Java, java.awt.List sort et une erreur se produit
A propos de la liste des baies Java
Une valeur nulle est entrée lors de l'affectation à un tableau
Je veux faire une liste avec kotlin et java!
ClassCastException se produit lors de la migration de Java7 vers Java8 ~ Génériques et surcharge ~
Pour les débutants Java: List, Map, Iterator / Array ... Comment convertir?
[Java] Conversion de type de liste / type de tableau
[Java] Convertir ArrayList en tableau
Comment initialiser un tableau Java
Collecte de copies approfondies en Java
[Java] Comment rechercher des valeurs dans un tableau (ou une liste) avec la méthode contains
Note n ° 1 "Comptage et affichage des valeurs en double dans un tableau" [Java]
[Swift5] Comment obtenir un tableau et un ensemble de différences entre les tableaux
Tri d'une liste avec un tableau de type int comme élément (Java) (Comparator)
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
[Attention !!] Précautions lors de la conversion de la devise Rails et de l'affichage des fichiers en haml
Élément Java effectif 25 Sélectionnez une liste dans un tableau Première moitié
Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent
Mémo d'apprentissage Java (création d'un tableau)
[Java] Convertir 1 en N liste en carte
[Java] Différence entre array et ArrayList
[Java] Comment utiliser List [ArrayList]
Traitement de flux d'inversion de liste Java étonnamment profond
Comment créer un tableau Java
Liste de conversion mutuelle de tableau / liste / flux Java
[Java] Convertit un tableau en ArrayList * Attention
Mettez à jour JAVA vers la dernière version vers 1.8.0_144 (lors du téléchargement à partir du Web et de la mise à jour)
[Java] Comment transformer un tableau à deux dimensions avec une instruction for étendue
[Petite histoire Java] Surveiller lorsqu'une valeur est ajoutée à la liste
[Introduction à Java] À propos des opérations de tableau (tableau 1D, déclaration de tableau 2D, instanciation, initialisation et utilisation)
Je veux ForEach un tableau avec une expression Lambda en Java
Comment créer une application avec un mécanisme de plug-in [C # et Java]