Il existe deux façons de créer un objet List à partir d'un tableau existant.
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.
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