如何制作一个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

回到顶部