Ich habe eine Queue
q1 und ich möchte eine Queue
q2 erstellen, die identisch ist mit Queue
q1. Wie man das macht, da Queue Cloneable
nicht implementiert.Wie kopiere ich eine Warteschlange in Java?
8
A
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.
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());
}
neue LinkedList (myQueue); sollte tun –
nos
Du hast Recht, ich bin ein Idiot. Die Warteschlange erweitert die Sammlung. – Kayaman