How do I copy or clone a LinkedList-implemented Queue in Java?
you can use an iterator :
Iterator<Integer> it = q1.iterator();
while(it.hasNext()) {
q2.add(it.next());
}
If q1 is one of JCF implementations of Queue like ArrayQueue etc are Cloneable you can use
Queue q2 = ((Cloneable)q1).clone();
otherwise
Queue q2 = q1.getClass().newInstance();
for(Object e : q1) {
q2.add(e);
}
In a one liner:
new LinkedList<>(myQueue);
Since Queue extends Collection
, and collections have a constructor that takes another Collection
, this is a quick way to do a shallow clone.
Substitute LinkedList
with your own Queue
implementation if you wish.
Also, read the javadocs. They have all the answers.