Comment copier une queue en Java?

J’ai une Queue q1 et je veux créer une Queue q2 identique à la Queue d’ Queue q1. Comment faire cela puisque Queue Cloneable pas Cloneable .

Dans un one liner:

new LinkedList<>(myQueue);

Etant donné que Queue extends Collection et que les collections ont un constructeur qui en prend une autre, il s’agit d’un moyen rapide de créer un clone superficiel.

Remplacez LinkedList par votre propre implémentation Queue si vous le souhaitez.

Lisez également les javadocs. Ils ont toutes les réponses.

Si q1 est l’une des implémentations JCF de Queue telle que ArrayQueue, etc sont clonables, vous pouvez utiliser

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

autrement

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

vous pouvez utiliser un iterator:

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