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()); }