1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| int[] tab1 = new int[3]; // instance A
int[] tab2 = new int[3]; // instance B
int[] tab3 = tab2; // instance B
List<int[]> list = new ArrayList<>();
list.add(tab1); // 0
list.add(tab1); // 1
list.add(tab2); // 2
list.add(tab3); // 3
tab2 = new int[3]; // instance C
list.add(tab2); // 4
list.add(tab3); // 5
// affiche la même cellule de l'instance de tableau A
System.out.println(tab1[0]);
System.out.println(list.get(0)[0]);
System.out.println(list.get(1)[0]);
// affiche la même cellule de l'instance de tableau B
System.out.println(tab3[0]);
//System.out.println(tab2[0]); // là non, c'est l'instance C, on a modifié la valeur de la variable tab2
System.out.println(list.get(2)[0]);
System.out.println(list.get(3)[0]);
// System.out.println(list.get(4)[0]); // là non, c'est l'instance C, même si on a utilisé la variable tab2 avec le add()
System.out.println(list.get(5)[0]); |
Partager