【发布时间】:2018-03-08 07:38:47
【问题描述】:
ArrayList<Integer> list1= new ArrayList<>();
ArrayList<Integer> list2= new ArrayList<>();
for(int i=1;i<=5;i++){
list1.add(i);
}
System.out.println("List1 "+list1);
list2=list1;
System.out.println("List2 "+list2 );
list2.add(6);
System.out.println("List1 Changed "+list1 );
输出:
List1 [1, 2, 3, 4, 5]
List2 [1, 2, 3, 4, 5]
List1 Changed [1, 2, 3, 4, 5, 6]
我知道使用 list2=list1,并且在更改 list2 时,list1 也会被更改。但我不希望我的 list1 改变它。我必须使用 list2=list1,但是有什么方法可以让我只获得 List1 [1, 2, 3, 4, 5] 吗?
【问题讨论】:
-
将
list1的克隆分配给list2。 -
@JeroenSteenbeeke:这里没有向任何方法传递任何内容。
-
@Thilo 确实是,但参考正在更改,所以我认为它可能有助于解释问题
标签: java arrays list arraylist