代码1
List<Integer> l=new ArrayList<Integer>();
l.add(3);
l.add(4);
List<List<Integer>> ll=new ArrayList<List<Integer>>();
ll.add(l);
System.out.println(ll);
l.add(5);
System.out.println(ll);
输出
[[3, 4]]
[[3, 4, 5]]
原因
list修改后,list<list>中的对应的list元素也会被修改!!!
代码2
List<Integer> l=new ArrayList<Integer>();
l.add(3);
l.add(4);
List<List<Integer>> ll=new ArrayList<List<Integer>>();
ll.add(new ArrayList<Integer>(l));
System.out.println(ll);
l.add(5);
System.out.println(ll);
输出
[[3, 4]]
[[3, 4]]