展开全部
先来看看 源码 java.util.ArrayList.clone()
java.util.ArrayList.clone() 返回此ArrayList实例的浅表副本(即本身是不可复制e68a84e8a2ad3231313335323631343130323136353331333361313934的元素)。
声明
以下是java.util.ArrayList.clone()方法的声明
public Object clone()
返回值
这个方法返回当前ArrayList实例的一个副本。
例子
下面的示例演示java.util.Arraylist.clone()方法的用法。package com.yiibai;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String args[]) {
// create an empty array list
ArrayList arrlist1 = new ArrayList();
// use add for new value
arrlist1.add(new StringBuilder("Learning-"));
// using clone to affect the objects pointed to by the references.
ArrayList arrlist2 = (ArrayList) arrlist1.clone();
// appending the string
StringBuilder strbuilder = arrlist1.get(0);
strbuilder.append("list1, list2-both pointing to the same StringBuilder");
System.out.println("The 1st list prints: ");
// both lists will print the same value, printing list1
for (int i = 0; i < arrlist1.size(); i++) {
System.out.print(arrlist1.get(i) + " ");
}
System.out.println("The 2nd list prints the same i.e:");
// both lists will print the same value, printing list2
for (int i = 0; i < arrlist2.size(); i++) {
System.out.print(arrlist2.get(i));
}
}
}
让我们来编译和运行上面的程序,这将产生以下结果:The 1st list prints:
Learning-list1, list2 - both pointing to the same StringBuilder
The 2nd list prints the same i.e:
Learning-list1, list2 - both pointing to the same StringBuilder
结论:
java.util.ArrayList.clone()是浅层拷贝。