Różnica między Arrays.asList (tablica) a nową ArrayList <Integer> (Arrays.asList (tablica))
Jaka jest różnica pomiędzy
1.List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia)); //copy
2.List<Integer> list2 = Arrays.asList(ia);
gdzieia
jest tablicą liczb całkowitych.
Dowiedziałem się, że niektóre operacje nie są dozwolonelist2
. dlaczego tak jest? jak jest przechowywany w pamięci (referencje / kopia)?
Kiedy tasuję listy,list1
nie wpływa na oryginalną tablicę, alelist2
robi. Ale nadallist2
jest nieco mylące.
W jaki sposóbArrayList
Upcasted do listy różni się od tworzenia nowychArrayList
list1 differs from (1)
ArrayList<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia));