Erläuterung der Warteschlange in der API:
Öffentliche Schnittstelle Warteschlange <E> Erweitert die Sammlung <e>
Sammlung verwendet, um Elemente vor der Verarbeitung von Elementen zu erhalten. Zusätzlich zum Basis -Sammlungsbetrieb bietet die Warteschlange auch andere Einfügungs-, Extraktions- und Inspektionsvorgänge. Es gibt zwei Formen jeder Methode: eine, die eine Abnormalität wirft (wenn die Operation ausfällt), und der andere gibt einen besonderen Wert zurück (null oder falsch, abhängig von der Operation). Die letztere Form des Einsatzbetriebs ist für die Warteschlange ausgelegt, die sich auf Kapazitätsbeschränkungen spezialisiert hat.
Die Warteschlange ist normalerweise (aber nicht unbedingt) jedes Element in Form von FIFO (zuerst fortgeschritten). Die vorrangige Warteschlange und die LIFO -Warteschlange (oder Stack), die erstere sortiert jedoch die Elemente basierend auf der natürlichen Reihenfolge des Komparators oder Elements, und letzteres sortiert die Elemente nach dem LIFO (Follow -up zuerst). Unabhängig davon, welche Sortiermethode verwendet wird, ist der Kopf der Warteschlange das Element, das durch Anruf () oder Umfrage () entfernt wurde. In der FIFO -Warteschlange werden alle neuen Elemente in das Ende der Warteschlange eingefügt. Andere Arten von Warteschlangen können unterschiedliche Element -Platzierungsregeln verwenden. Jede Warteschlangenimplementierung muss ihre Bestellattribute angeben.
Wenn möglich, kann die Angebotsmethode in ein Element eingefügt werden, andernfalls gibt sie false zurück. Dies unterscheidet sich von der Sammlung. Das Angebotsmethodendesign wird für normales Versagen verwendet, nicht für abnormale Situationen, wie z. B. in einer Warteschlange mit festem (Grenze).
Die Methoden remove () und Poll () können entfernt und an den Kopf der Warteschlange zurückgegeben werden. Das Element wird am Ende aus der Warteschlange entfernt die Funktion der Warteschlangensortierungsstrategie, und diese Strategie unterscheidet sich in verschiedenen Implementierungen. Die Methoden von REME () und POLL () sind nur unterschiedlich, wenn die Warteschlange leer ist: REME () -Methode löst eine Ausnahme aus, und die Methode Poll () gibt null zurück.
Element () und peek () kehren, aber nicht entfernt, den Kopf der Warteschlange.
Die Warteschlangenschnittstelle definiert nicht die Methode der Blockierung der Warteschlange, und dies ist bei gleichzeitiger Programmierung sehr häufig. Die Blockingqueue -Schnittstelle definiert die Methode des verfügbaren Raums im Erscheinen wartender Elemente oder des Wartens auf die Warteschlange, die diese Schnittstelle erweitert.
Die Implementierung der Warteschlangen ist normalerweise nicht erlaubt, Nullelemente einzufügen, obwohl eine Implementierung (z. B. LinkedList) nicht verboten werden kann, Null zu fördern. Selbst bei der Implementierung von NULL sollte Null nicht in die Warteschlange eingefügt werden, da Null auch als Sonderrückgabewert für die Umfragemethode verwendet wird, was darauf hinweist, dass die Warteschlange keine Elemente enthält.
Queue implementiert Element -basierte Versionen von Equals- und Hashcode -Methoden, erbten jedoch die identitätsbasierte Version aus der Objektklasse, da für Warteschlangen mit denselben Elementen, aber unterschiedliche Sortierattribute die gleiche Natur der Elemente nicht immer die gleiche Natur ist .
Verwenden Sie eine Warteschlange in Java, um mit der LinkedList -Sammlung zu simulieren
Methoden, die die LinkedList -Sammlung und die API -Kollektiv -Simulations -Warteschlangenvorgänge wie beispielsweise verwenden
Warteschlange
void addlast (e e); // das Element in das Ende dieser Liste einfügen.
Warteschlange
E REMEDFIRST ();
Leer sein
boolean isempty ();
Zum Beispiel Code
Paket Corejavaone; Public void enqueue (int data) {this.queue.addlast (data);} public int dequeue () löst NocomentException aus {return this.queue.remove first ();} öffentliche statische Void Main (String [] Args) {Simulationsqueue Q. = Neue Simulationsqueue (); println (Daten);}}}