Java ArrayList 赋值中的对象引用
当 ArrayList l1 被赋值给新的引用 l2 时,l1 和 l2 不会指向不同的ArrayList 对象。相反,l2 接收到与 l1 相同的 ArrayList 对象的引用。这称为浅复制。
通过 l1 或 l2 修改列表对象将反映在两个引用中。如示例所示:
List<Integer> l1 = new ArrayList<>(); for (int i = 1; i <= 10; i++) { l1.add(i); } List l2 = l1; l2.clear();
l1 和 l2 都引用同一个对象,因此通过 l2 清除列表也会影响 l1。
要创建 ArrayList 对象的副本,应创建包含原始元素副本的新列表。实现此目的的一种方法是使用 ArrayList(Collection extends E> c) 构造函数,其中 c 是原始集合:
List<Integer> newList = new ArrayList<>(l1);
这将创建一个新的 ArrayList 对象,其中包含单独的引用和副本来自 l1 的元素。
以上是将 ArrayList 分配给新引用如何影响原始对象?的详细内容。更多信息请关注PHP中文网其他相关文章!