gpt4 book ai didi

Java ArrayList 副本

转载 作者:IT老高 更新时间:2023-10-28 12:17:57 26 4
gpt4 key购买 nike

我有一个大小为 10 的 ArrayList l1。我将 l1 分配给新的列表引用类型 l2l1l2 会指向同一个 ArrayList 对象吗?或者是 ArrayList 对象的副本分配给 l2

当使用 l2 引用时,如果我更新列表对象,它也会反射(reflect) l1 引用类型的变化。

例如:

List<Integer> l1 = new ArrayList<Integer>();
for (int i = 1; i <= 10; i++) {
l1.add(i);
}

List l2 = l1;
l2.clear();

除了创建 2 个列表对象以及对集合进行从旧到新的复制之外,是否没有其他方法可以将列表对象的副本分配给新的引用变量?

最佳答案

是的,赋值只会将 l1value(这是一个引用)复制到 l2。它们都将引用同一个对象。

创建一个浅拷贝非常简单:

List<Integer> newList = new ArrayList<>(oldList);

(仅作为一个例子。)

关于Java ArrayList 副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536094/

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