我有一个Queue
q1,我想创建一个与Queue
q1相同的Queue
q2。如何做到这一点,因为Queue没有实现Cloneable
。
在一个班轮:
new LinkedList<>(myQueue);
由于Queue extends Collection
和集合有一个构造函数,需要另一个Collection
,这是一个快速的方法来做一个浅层克隆。
如果您愿意,用您自己的LinkedList
实现替换Queue
。
另外,阅读javadocs。他们有所有的答案。
如果q1是Quering的JCF实现之一,例如ArrayQueue等,则可以使用Cloneable
Queue q2 = ((Cloneable)q1).clone();
除此以外
Queue q2 = q1.getClass().newInstance();
for(Object e : q1) {
q2.add(e);
}
你可以使用迭代器:
Iterator<Integer> it = q1.iterator();
while(it.hasNext()) {
q2.add(it.next());
}