gpt4 book ai didi

Java - 包含对原始列表的引用的克隆列表

转载 作者:行者123 更新时间:2023-12-01 22:32:20 26 4
gpt4 key购买 nike

我不太清楚在 Java 中复制列表是如何工作的。我有这段代码:

List<String> copy = new ArrayList<String>(original);

这会创建一个名为 copy 的新列表,它只包含对原始列表中对象的引用吗? (这就是我要的)。或者它会生成新的字符串对象并耗尽不必要的内存吗?

当我从副本列表中删除项目时,这是否只会删除引用而不是从两个列表中删除对象?

感谢阅读!

最佳答案

copy 列表将包含对相同 String 对象的引用。这称为浅拷贝。它不会创建元素的副本;它将创建对元素的引用的副本。

original -->  [ +      +       +  ]
| | |
v v v
"one" "two" "three"
^ ^ ^
| | |
copy --> [ + + + ]

当您从一个列表中删除一项时,您只是从该列表中删除了引用。另一个列表中的相应引用仍然完好无损。

original -->  [ +      +       +  ]
| | |
v v v
"one" "two" "three"
^ ^
| |
copy --> [ + + ]

关于Java - 包含对原始列表的引用的克隆列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039750/

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