In diesem Artikel wird die Verwendungsmethode von Java.util.Arraydeque als Referenz vorgestellt. Der spezifische Inhalt ist wie folgt
1. Arraydeque hat zwei Klassenattribute, Kopf und Schwanz sowie zwei Zeiger.
2. Arraydeque verwendet ein Array als Träger, und die Array -Elemente bewegen sich nicht, wenn Sie Methoden wie Add ausführen. Die einzigen Änderungen sind Kopf- und Schwanzzeiger, und die Zeiger sind Schleifenänderungen, und die Array -Kapazität ist nicht begrenzt.
3. Die Angebotsmethode und die Add -Methode werden beide über die Addlast -Methode implementiert. Jedes Mal, wenn ein Element hinzugefügt wird, wird das Element zum Schwanz des Arrays hinzugefügt. Zu diesem Zeitpunkt ändert sich der Kopfzeiger nicht und der Schwanzzeiger wird hinzugefügt. Da der Zeiger die Schleife hinzugefügt wird, wenn der Schwanz den Kopf einholt ((this.tail = this.tail + 1 & this.elements.Length - 1) == this.head) verdoppelt sich die Array -Kapazität und wird weiterhin ausgeführt.
4. Die Entfernungsmethode und die Umfragemethode werden beide durch die Pollfirst -Methode implementiert. Jedes Mal, wenn ein Element entfernt wird, wird die Position des Elements null. Zu diesem Zeitpunkt ändert sich der Heckzeiger nicht und der Kopfzeiger wird hinzugefügt. Wenn im Array keine Daten vorhanden sind, wird Null zurückgegeben.
5. Da Arraydeque nicht mit Gewinde versehen ist, ist es schneller als Stapel, wenn es als Stapel und schneller als die LinkedList verwendet wird, wenn sie als Warteschlange verwendet wird.
Paket com.what21.collect11; Import Java.util.ArrayDequ; Import Java.util.deque; public class arrayDequedemo { / ** * @param args * / public static void main (string [] args) {deque <eljekte> data = new ArrayDeque <Object> (); // Element hinzufügen für (int i = 0; i <20; i ++) {data.push ("www.what21.com." + I + ""); } // die ersten Daten löschen.RemoveFirst (); // Erhalten Sie das erste System.out.println (data.peekfirst ()); // Zu den letzten data.addlast hinzufügen ("www.what21.com .9999"); // system.out.println (Daten); // traversal für (Objekt o: data) {System.out.println (o); }}}Das Obige dreht sich alles um diesen Artikel, ich hoffe, es wird für das Lernen aller hilfreich sein.