我有 l2
ArrayList
l1
l1
l1
和 l2
指向同一个 ArrayList
对象吗?或者是分配给 ArrayList
对象的副本 l2
?
使用 l2
引用时,如果我更新列表对象,它也会反映 l1
引用类型的变化。
例如:
List<Integer> l1 = new ArrayList<Integer>();
for (int i = 1; i <= 10; i++) {
l1.add(i);
}
List l2 = l1;
l2.clear();
除了创建 2 个列表对象并对集合进行从旧到新的复制之外,是否没有其他方法可以将列表对象的副本分配给新的引用变量?
原文由 user309281 发布,翻译遵循 CC BY-SA 4.0 许可协议
是的,赋值只会将
l1
的 _值_(这是一个引用)复制到l2
。他们都将引用同一个对象。创建浅拷贝非常简单:
(仅举一例。)