我不能仅仅修改原始列表。
以下是我所见过的做法:
List<String> l1 = new ArrayList<String>();
l1.add("Hello");
l1.add("World");
List<String> l2 = new ArrayList<String>(l1); //A new arrayList.
l2.add("Everybody");
所以,我现在会有一个新列表,它是第一个列表的副本。我可以修改第二个列表而不改变第一个列表。
现在,我有困难理解如何做到相同的事情,但是将项目添加到列表末尾。
我认为所做的正是上述代码,并将列表添加到另一个列表中。例如使用
addAll
。但我到处看到这只复制引用等内容,因此如果它在方法内或者它是RMI代码,则列表本身将不完整,它将获取对刚刚创建的其他列表的引用。由于我需要针对许多类型的列表进行此操作,因此不确定逐个处理项目是否理想。因此,如果可能的话,我需要将列表添加到另一个列表末尾。
new ArrayList<String>(l1)
),这也是正确的。 - RealSkepticString
是不可变的。 - fabian