如何克隆ArrayList及其内容?

309

我该如何在Java中克隆一个ArrayList并且同时克隆它的元素?

比如我有以下代码:

ArrayList<Dog> dogs = getDogs();
ArrayList<Dog> clonedList = ....something to do with dogs....

我期望clonedList中的对象与dogs列表中的对象不相同。


这个问题已经在深度克隆实用工具推荐的讨论中提及过了。 - Swiety
21个回答

-2

我认为我找到了一种非常简单的方法来复制 ArrayList。假设您想要复制一个字符串ArrayList数组arrayA。

ArrayList<String>arrayB = new ArrayList<String>();
arrayB.addAll(arrayA);

如果这对你不起作用,请告诉我。


3
不起作用,如果您在我的情况下使用List<List<JsonObject>>。 - djdance
字符串是不可变的。克隆没有意义,在您的示例中,arrayB和arrayA具有相同的对象引用-这是浅复制。 - Christian Fries

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接