ArrayList<ArrayList<String>> list1 = new ArrayList<ArrayList<String>>();
ArrayList<String> list2 = new ArrayList<String>();
list2.add("foo");
System.out.println(list2); //[foo]
list1.add(list2);
System.out.println(list1); //[[foo]]
list2.set(0, "bar");
System.out.println(list2); //[bar]
System.out.println(list1); //[[bar]]
上面的代码显示了 2 个列表。当我将list2(包含foo)添加到list1它们时,它们现在都包含foo. 但是当我修改list2为bar,list1也会改变。我一直认为 add 方法只提供 to 的副本,list2而list1我所做的 tolist2不会改变list1.
list2我怎样才能让它成为我添加list1但允许list2在未来自由修改所以list1不会再次受到影响?