ArrayList浅拷贝迭代或克隆()

我需要一个java ArrayList的浅表副本,我应该使用clone()还是迭代原始列表并将元素复制到新的arrayList中,哪个更快?

使用clone() ,或使用copy-constructor。

复制构造函数从传递的集合到数组进行额外的转换,而clone()方法直接使用内部数组。

请记住clone()返回Object ,因此您必须强制转换为List

无需迭代:

 List original = ... List shallowCopy = new ArrayList(original); 

http://java.sun.com/javase/6/docs/api/java/util/ArrayList.html#ArrayList%28java.util.Collection%29

而不是手动迭代,您可以使用复制构造函数 。

至于它与使用clone()之间的速度差异:

  1. 没关系
  2. 很可能没有
  3. 为特定的系统配置和用例做基准测试

问题说浅层扫描不是深度复制。直接从一个arraylist引用到另一个的引用也可以正常工作。深层复制包括复制arraylist中的单个元素。

 ArrayList list=new ArrayList(); list.add(3); ArrayList list1=list; //shallow copy... 

这有什么问题??