简单地说,我有一个带有 ArrayList 参数的方法。在该方法中,我修改 ArrayList 的内容仅与该方法返回的内容相关。因此,我不希望作为参数传递的 ArrayList 受到影响(即不作为引用传递)。
我尝试的一切都未能达到预期的效果。我需要做什么才能仅在方法中使用 ArrayList 的副本,而不是让它更改实际变量?
最佳答案
即使您有办法将数组列表作为副本而不是通过引用传递,它也只是一个浅拷贝。
我会这样做:
void foo(final ArrayList list) {
ArrayList listCopy = new ArrayList(list);
// Rest of the code
}
只需在复制的列表上工作。
关于java - 仅将 ArrayList 作为值而不是引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15778645/