理解java的引用
ArrayList<ArrayList<Integer>> listArr = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> list2 = new ArrayList<Integer>(); list2.add(2); list2.add(3); list2.add(4); list2.add(5); listArr.add(list2);//list2是指向一个ArrayList的引用 list2.add(6); list2.add(6); list2.add(6); listArr.add(list2); for(ArrayList<Integer> list3: listArr){ for(Integer num : list3){ System.out.print(num+" "); } System.out.println(""); }
输出结果:
2 3 4 5 6 6 6
2 3 4 5 6 6 6
list2是指向一个ArrayList的引用,虽然listArr中第一次添加list2时,list2中并没有666,但是
在之后,list中添加了,就会导致list2引用指向的内容发生改变。因此,不管listArr中第一次添加
list2的值还是第二次添加list2,他们的内容都是相同的。

浙公网安备 33010602011771号