Java 使用克隆或使用构造函数和赋值哪个更有效
我有一个linkedlist,我想复制该linkedlist。克隆的运行速度是否比创建新实例然后为其赋值快? 比如我有Java 使用克隆或使用构造函数和赋值哪个更有效,java,Java,我有一个linkedlist,我想复制该linkedlist。克隆的运行速度是否比创建新实例然后为其赋值快? 比如我有 LinkedList<MyClass> list = new LinkedList<MyClass>(); list.add(instance1); list.add(instance2); LinkedList=新建LinkedList(); 列表。添加(实例1); 列表。添加(实例2); 使用克隆: LinkedList<MyClass&g
LinkedList<MyClass> list = new LinkedList<MyClass>();
list.add(instance1);
list.add(instance2);
LinkedList=新建LinkedList();
列表。添加(实例1);
列表。添加(实例2);
使用克隆:
LinkedList<MyClass> list2 = list.clone();
LinkedList list2=list.clone();
使用构造函数:
LinkedList<MyClass> list2 = new LinkedList<MyClass>();
for(MyClass myclass : list){
list2.add(myclass);
}
LinkedList list2=新建LinkedList();
用于(MyClass MyClass:列表){
列表2.add(myclass);
}
最好使用浅复制构造函数。您编写了使用构造函数而未使用。你在绕圈子
在我建议使用的所有方法中
List<MyClass> list2 = new LinkedList<MyClass>(list);
List list2=新链接列表(List);
甚至
事实是,除了复制功能外,您没有通过实现可克隆和提供公共克隆方法来为客户提供任何功能。如果您提供了一个具有不同名称的复制操作,并且没有实现Cloneable,那么这并不比您得到的更好。这基本上就是使用复制构造函数所做的。复制构造函数方法有几个优点,我在书中讨论过。一个很大的优点是,可以使副本具有与原件不同的表示形式。例如,可以将LinkedList复制到ArrayList中
您不是在使用构造函数,而是在复制项。您可以自己对其进行基准测试:)