gpt4 book ai didi

java - 按值复制 Java 列表

转载 作者:行者123 更新时间:2023-12-01 10:11:43 25 4
gpt4 key购买 nike

我已经看到了这个问题的答案,但它没有复制值。

 List<SomeBean> newList = new ArrayList<SomeBean>(otherList);

我需要有两个单独的列表,因为我想修改新列表中的元素并将它们与原始列表进行比较。如果我这样做,编辑 newList 中的对象也会修改 otherList 中的对象。

这是如何在java中完成的?

最佳答案

深度复制(更改其中一项,另一项不更改)

此代码将创建一个新列表,然后从旧列表中创建每个对象的克隆并将其添加到新列表中。

List<SomeBean> newList = new ArrayList<SomeBean>(otherList.size());
for(SomeBean item : otherList) {
newList.add(item.clone());
}

浅复制(更改其中一项,更改另一项)

您发布的示例应该可以工作,但如果不行,还有另一种方法:

List<SomeBean> newList = new ArrayList<SomeBean>(otherList.size());
Collections.copy(newList, otherList);

这会使新列表的大小与另一个列表的大小相同,然后复制这些值。

关于java - 按值复制 Java 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com