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
も変更されます。list2
addメソッドはtoのコピーのみを提供し、list1
私が行うことは。list2
に対して変更されないと常に思っていましたlist1
。
追加list2
しlist1
たがlist2
、将来自由に変更できるようにして、list1
再び影響を受けないようにするにはどうすればよいですか?