我有一个用LinkedList
实现的队列q1
,我想定义一个与q1
分开但完全相同的队列q2
。
由于Queue
没有实现Cloneable
,我该如何实现?
new LinkedList<>(myQueue);
Queue extends Collection
,且集合有一个以另一个Collection
为参数的构造函数,因此这是进行浅克隆的快速方法。如果需要可以用自己的Queue
实现替换LinkedList
。另外,请阅读Java文档,它们拥有所有答案。您可以使用迭代器:
Iterator<Integer> it = q1.iterator();
while(it.hasNext()) {
q2.add(it.next());
}
Queue q2 = ((Cloneable)q1).clone();
Queue q2 = q1.getClass().newInstance();
for(Object e : q1) {
q2.add(e);
}