[英]How do I copy or clone a LinkedList-implemented Queue in Java?
我有一个Queue
q1,它是作为LinkedList
实现的,我想定义一个Queue
q2,它是Queue
q1 的一个单独但完全相同的实例。
由于Queue
没有实现Cloneable
,我该怎么做?
在一个班轮中:
new LinkedList<>(myQueue);
由于Queue extends Collection
,并且集合有一个接受另一个Collection
的构造函数,因此这是进行浅层克隆的快速方法。
如果您愿意,可以用您自己的Queue
实现替换LinkedList
。
另外,阅读javadocs。 他们有所有的答案。
您可以使用迭代器:
Iterator<Integer> it = q1.iterator();
while(it.hasNext()) {
q2.add(it.next());
}
如果 q1 是 Queue 的 JCF 实现之一,如 ArrayQueue 等是可克隆的,您可以使用
Queue q2 = ((Cloneable)q1).clone();
除此以外
Queue q2 = q1.getClass().newInstance();
for(Object e : q1) {
q2.add(e);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.