簡體   English   中英

如何在 Java 中復制或克隆 LinkedList 實現的隊列?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM