如何制作一个List类型的ArrayList对象的副本?
我研究过Java是按值传递对象引用,并且为了创建对象的本地副本,我可以执行clone()或copy-constructor。我还查看了深/浅副本以及关于stackoverflow的几篇文章。
现在我看一个例子:
List<String> list = new ArrayList<String>();String one = "one"
list.add(one);
我只读过几篇文章提到ArrayList实现可克隆,但是并没有真正说出如果类型为List而不是不实现可克隆的ArrayList,那么如何制作“列表”的本地副本。
如果“列表”是ArrayList的类型,则可以调用clone()。
ArrayList<String> list = new ArrayList<String();list.clone();
但是,如果类型是列表,我就不能。
我应该只使用下面的复制构造函数进行本地复制吗?复制“列表”的最佳方法是什么?
List<String> tmpList = new ArrayList<String>(list);
回答:
将列表传递到构造函数中可能是最好的方法。构造函数调用本身将在后台使用System.arraycopy。因此,它将有效地将本地副本与通过构造函数传递的列表分离。
以上是 如何制作一个List类型的ArrayList对象的副本? 的全部内容, 来源链接: utcz.com/qa/415854.html