String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> namesList = Arrays.asList(names);
ou
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> temp = Arrays.asList(names);
La déclaration ci-dessus ajoute le wrapper sur le tableau d'entrée. Ainsi, les méthodes comme ajouter et supprimer ne seront pas applicables sur l'objet de référence de liste 'namesList'.
Si vous essayez d'ajouter un élément dans le tableau / liste existant, vous obtiendrez "Exception dans le thread" main "java.lang.UnsupportedOperationException".
L'opération ci-dessus est en lecture seule ou en lecture seule.
Nous ne pouvons pas effectuer d'opération d'ajout ou de suppression dans l'objet de liste. Mais
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.ArrayList<String> list1 = new ArrayList<>(Arrays.asList(names));
ou
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> listObject = Arrays.asList(names);
java.util.ArrayList<String> list1 = new ArrayList<>(listObject);
Dans l'instruction ci-dessus, vous avez créé une instance concrète d'une classe ArrayList et passé une liste en tant que paramètre.
Dans ce cas, la méthode add & remove fonctionnera correctement car les deux méthodes proviennent de la classe ArrayList, donc ici, nous n'obtiendrons pas d'exception UnSupportedOperationException.
Les modifications apportées à l'objet Arraylist (méthode d'ajout ou de suppression d'un élément dans / d'une arraylist) ne seront pas reflétées dans l'objet java.util.List d'origine.
String names[] = new String[] {
"Avinash",
"Amol",
"John",
"Peter"
};
java.util.List < String > listObject = Arrays.asList(names);
java.util.ArrayList < String > list1 = new ArrayList < > (listObject);
for (String string: list1) {
System.out.print(" " + string);
}
list1.add("Alex"); //Added without any exception
list1.remove("Avinash"); //Added without any exception will not make any changes in original list in this case temp object.
for (String string: list1) {
System.out.print(" " + string);
}
String existingNames[] = new String[] {
"Avinash",
"Amol",
"John",
"Peter"
};
java.util.List < String > namesList = Arrays.asList(names);
namesList.add("Bob"); // UnsupportedOperationException occur
namesList.remove("Avinash"); //UnsupportedOperationException
Lists.newArrayList(ia)
fait une copie indépendante, comme la première option. C'est simplement plus général et mieux à regarder.