znalazlem takie wytlumaczenie co to robi: "copyOf() - pozwoli skopiować całość lub fragment tablicy, do innej tablicy. W przypadku typów obiektowych kopiowane są referencje (nie są tworzone kopie obiektów), więc modyfikując obiekty w jednej tablicy, zmodyfikujemy także obiekty w utworzonej kopii"
Jednak gdy przetestowalem to w taki sposob:
Integer[] i = { 5, 4, 3, 2, 1 };
Integer[] i2 = new Integer[i.length];
i2 = Arrays.copyOf(i, i.length);
i[0] = 21212;
for (int num : i) {
System.out.print(num + " ");
}
System.out.println();
for (int num : i2) {
System.out.print(num + " ");
}
to druga tablica nie zmienila swojej pierwszej wartosci jak mam to rozumiec? bo ja rozumiem definicje tej metody "copyof" tak , ze 2 tablice wskazuja na ta sama referencje tak? Wiec skoro wskazuja na ta sama referencje to jak zmienimy w 1 tablicy jakas wartosc to i w 2 tablicy powinna sie zmienic?czy jednak nie wskazuja na ta sama referencje?
bo wedlug mnie to powinno dzialac tak jak to:
Integer[] i = {5,4,3,2,1};
Integer[] i2 = new Integer[i.length];
i2 = i;
//Arrays.sort(i2);
i[0] = 21212;
for(int num: i2) {
System.out.print(num + " ");
}
System.out.println();
for(int num: i) {
System.out.print(num + " ");
}
Pozdrawiam