在 Java 中,ArrayList 是动态数组,可用于存储指定类型的元素。使用 ArrayList 时,了解赋值的行为非常重要。
假设我们有一个包含 10 个元素的 ArrayList l1 并将其分配给另一个变量 l2。 l1 和 l2 是指向同一个 ArrayList 对象,还是赋给 l2 的对象的副本?
Java 中的赋值只是复制变量的值,即在本例中是对 ArrayList 对象的引用。因此,l1 和 l2 将都引用同一个 ArrayList 对象。
例如:
List<Integer> l1 = new ArrayList<>(); for (int i = 1; i <= 10; i++) { l1.add(i); } List l2 = l1; l2.clear();
在这种情况下,清除 l2 也会影响 l1,因为它们都指向同一个
要创建 ArrayList 对象的副本,可以通过创建新的 ArrayList 并将原始列表中的元素添加到新列表来创建浅表副本:
List<Integer> newList = new ArrayList<>(oldList);
此方法会生成一个单独的 ArrayList 对象,其元素与原始对象相同。
以上是Java 的 ArrayList 赋值会创建副本还是共享引用?的详细内容。更多信息请关注PHP中文网其他相关文章!