如何用另一个数组列表的内容替换数组列表的内容?

Bob*_*Bob 1 java oop arraylist

我想用另一个数组的内容完全替换一个数组列表的内容。例如,

ArrayList<String> old = new ArrayList<String>();
ArrayList<String> newlist = new ArrayList<String>();
old.add("Hi");
old.add("World");
newlist.add("League")
newlist.add("OfLegends"):
old = newlist;
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,它会执行这种奇怪的行为,其中数组列表的大小会随着更多元素而加倍。我不想要一个两倍于原始数组列表大小的数组列表,我只想用新的数组列表覆盖旧的数组列表,其中旧的和新的数组列表的内容是相同的。有没有办法在没有某种循环的情况下做到这一点,或者这是我唯一的选择?谢谢你

Fri*_*ots 7

old.clear(); 
old.addAll(newList);
Run Code Online (Sandbox Code Playgroud)

这将清除旧列表并将来自 newList 的引用副本添加到旧列表。如果您对旧列表进行更改,新列表将不受影响(反之亦然)。

请注意,就您的代码而言,您将旧列表设置为与新列表相同的对象引用。更改其中一个列表(使用add()remove())将更改另一个列表,因为它们共享相同的底层对象。