import java.util.*;
public class F1 {
public static void man(String[] args) {
ArrayList<Integer> a1 = new ArrayList<Integer>(4);
a1.add(15);
a1.add(30);
a1.add(20);
a1.add(18);
ArrayList<Integer> a2 = a1.clone();
for (Integer number : a2) {
System.out.println("Number = " + number);
}
}
}
答案 0 :(得分:1)
ArrayList实现了Cloneable,因此您可以克隆这种方式。 但是clone会返回一个Object,而不是一个ArrayList,所以你需要强制转换。 但是,如果您只需要在新实例中复制ArrayList,请考虑执行以下操作:
ArrayList<Integer> a2 = new ArrayList<Integer>(a1);
a2将具有与a1相同的元素,但它是一个不同的对象。
答案 1 :(得分:0)
clone()
方法不返回相同的类型。但是,它会返回ArrayList
的副本;但是,它以java.lang.Object
返回。
为了使代码按预期运行,请将clone()
调用返回转换为ArrayList<Integer>
,即:
ArrayList<Integer> a2 = (ArrayList<Integer>) a1.clone();
编辑:“a1.clone()”而不是“a1.close()”