[英]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.