2014-04-10 16 views

Antwort

12

In einem Motto:

new LinkedList<>(myQueue);

Seit Queue extends Collection und Sammlungen einen Konstruktor haben, der eine andere Collection nimmt, dann ist dies ein schneller Weg, einen flachen Klon zu tun.

Ersatz LinkedList mit Ihrer eigenen Queue Implementierung, wenn Sie es wünschen.

Lesen Sie auch die Javadocs. Sie haben alle Antworten.

+3

neue LinkedList (myQueue); sollte tun – nos

+1

Du hast Recht, ich bin ein Idiot. Die Warteschlange erweitert die Sammlung. – Kayaman

2

Wenn q1 eine von JCF Implementierungen von Queue wie ArrayQueue ist usw. sind klonbar Sie

Queue q2 = ((Cloneable)q1).clone(); 

sonst

Queue q2 = q1.getClass().newInstance(); 
    for(Object e : q1) { 
     q2.add(e); 
    } 
1

Sie einen Iterator verwenden können, verwenden können:

Iterator<Integer> it = q1.iterator(); 
while(it.hasNext()) { 
    q2.add(it.next()); 
} 
Verwandte Themen