【发布时间】:2013-03-24 14:31:37
【问题描述】:
简单地说,我有一个带有 ArrayList 参数的方法。在该方法中,我修改 ArrayList 的内容仅与该方法返回的内容相关。因此,我不希望作为参数传递的 ArrayList 受到影响(即不作为引用传递)。
我尝试的一切都未能达到预期的效果。我需要做什么才能仅在方法中使用 ArrayList 的副本,而不是让它更改实际变量?
【问题讨论】:
-
您可以通过
Collections#unmodifiable(yourList)发送一份不可修改的列表副本。 -
您还可以在修改它的方法中创建
ArrayList的新副本。虽然它不会影响第一个ArrayList,但您在其中更改的任何对象仍将被更改... -
您只修改列表吗?或者还有什么在列表里面?
-
有谁知道 System.arraycopy 是否只会复制引用或克隆数组中的对象?我找了源头,因为它是一个原生方法而结束了..
标签: java reference arraylist pass-by-reference