【发布时间】:2021-11-26 23:32:07
【问题描述】:
嗨,我正在使用 clone() 方法来复制我的数组列表的引用,像这样
import java.util.*;
public class Cloning {
public static void main(String[] args) {
ArrayList v = new ArrayList();
for(int i = 0; i < 10; i++ )
v.add(new Int(i));
System.out.println("v: " + v);
ArrayList v2 = (ArrayList)v.clone();
for(int i=0;i<v2.size();i++ )
((Int)v2.get(i)).increment();
System.out.println("v: " + v);
}
}
输出是
v: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
v: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
否则如果我做这个
import java.util.*;
public class Cloning {
public static void main(String[] args) {
ArrayList v = new ArrayList();
for(int i = 0; i < 10; i++ )
v.add(new Int(i));
System.out.println("v: " + v);
ArrayList v2 = v;
for(int i=0;i<v2.size();i++ )
((Int)v2.get(i)).increment();
System.out.println("v: " + v);
}
}
输出是一样的。所以我的问题是,如果我对 arraylist 使用 clone() 方法,或者我使用 ArrayList v2 = v;是一样的吗?
【问题讨论】:
标签: java class arraylist copy shallow-copy