String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> namesList = Arrays.asList(names);
hoặc là
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> temp = Arrays.asList(names);
Câu lệnh trên thêm trình bao bọc trên mảng đầu vào. Vì vậy, các phương thức như add & remove sẽ không được áp dụng trên đối tượng tham chiếu danh sách 'namesList'.
Nếu bạn cố gắng thêm một phần tử trong mảng / danh sách hiện có thì bạn sẽ nhận được "Ngoại lệ trong luồng" main "java.lang.UnsupportedOperationException".
Thao tác trên là chỉ đọc hoặc chỉ xem.
Chúng tôi không thể thực hiện thêm hoặc bớt thao tác trong đối tượng danh sách. Nhưng
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.ArrayList<String> list1 = new ArrayList<>(Arrays.asList(names));
hoặc là
String names[] = new String[]{"Avinash","Amol","John","Peter"};
java.util.List<String> listObject = Arrays.asList(names);
java.util.ArrayList<String> list1 = new ArrayList<>(listObject);
Trong câu lệnh trên, bạn đã tạo một phiên bản cụ thể của lớp ArrayList và chuyển một danh sách làm tham số.
Trong trường hợp này, phương thức add & remove sẽ hoạt động bình thường vì cả hai phương thức đều từ lớp ArrayList nên ở đây chúng ta sẽ không nhận được bất kỳ UnSupportedOperationException nào.
Các thay đổi được thực hiện trong đối tượng Arraylist (phương thức thêm hoặc xóa một phần tử trong / khỏi danh sách mảng) sẽ không phản ánh trong đối tượng java.util.List ban đầu.
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)
tạo một bản sao độc lập, giống như tùy chọn đầu tiên. Nó chỉ đơn giản là tổng quát hơn và tốt hơn để xem xét.