2014-04-10 24 views

risposta

12

In uno di linea:

new LinkedList<>(myQueue);

Dal Queue extends Collection, e le collezioni hanno un costruttore che prende un altro Collection, questo è un modo rapido per fare un clone superficiale.

Sostituirecon la propria implementazione Queue se lo si desidera.

Inoltre, leggere i javadocs. Hanno tutte le risposte.

+3

nuova LinkedList (myQueue); Dovrei fare – nos

+1

Hai ragione, sono un idiota. La coda estende la raccolta. – Kayaman

2

Se q1 è uno dei JCF implementazioni di coda come ArrayQueue ecc sono Cloneable è possibile utilizzare

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

altrimenti

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

è possibile utilizzare un iteratore:

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