Explication de la file d'attente dans l'API:
La file d'attente d'interface publique <E> étend la collection <E>
Collection utilisée pour préserver les éléments avant de traiter les éléments. En plus de l'opération de collecte de base, la file d'attente fournit également d'autres opérations d'insertion, d'extraction et d'inspection. Il existe deux formes de chaque méthode: l'une jetant une anomalie (lorsque l'opération échoue), et l'autre renvoie une valeur spéciale (null ou false, selon l'opération). Cette dernière forme d'opération d'insertion est conçue pour la file d'attente, qui se spécialise dans les restrictions de capacité;
La file d'attente est généralement (mais pas nécessairement) pour trier chaque élément sous la forme de FIFO (avancé en premier). Cependant, la file d'attente prioritaire et l'exception de la file d'attente (ou de pile) de LIFO, la première trie les éléments en fonction de l'ordre naturel du comparateur ou de l'élément, et le second trie les éléments selon le lifo (suivi-up en premier). Quelle que soit la méthode de tri utilisée, la tête de la file d'attente est l'élément supprimé par Calling () ou Poll (). Dans la file d'attente FIFO, tous les nouveaux éléments sont insérés dans la fin de la file d'attente. D'autres types de files d'attente peuvent utiliser différentes règles de placement des éléments. Chaque implémentation de file d'attente doit spécifier ses attributs de commande.
Si possible, la méthode de l'offre peut être insérée dans un élément, sinon elle reviendra fausse. Ceci est différent de la méthode Collection.Add. La conception de la méthode de l'offre est utilisée pour une défaillance normale, et non des situations anormales, comme dans une file d'attente de fixe (limite).
Les méthodes de relève () et de poll () peuvent être supprimées et retournées à la tête de la file d'attente. En fin de compte, quel élément est supprimé de la file d'attente est la fonction de la stratégie de tri de la file d'attente, et cette stratégie est différente dans diverses implémentations. Les méthodes de relève () et de poll () ne sont différentes que lorsque la file d'attente est vide: la méthode Supprimer () lance une exception et la méthode Poll () renvoie Null.
Element () et peek () retourne, mais non supprimé, la tête de la file d'attente.
L'interface de file d'attente ne définit pas la méthode de blocage de la file d'attente, et cela est très courant dans la programmation simultanée. L'interface BlockingQueue définit la méthode d'espace disponible dans l'apparition d'éléments d'attente ou l'attente de la file d'attente, qui étend cette interface.
La mise en œuvre de la file d'attente n'est généralement pas autorisée à insérer des éléments nuls, bien qu'une certaine implémentation (telle que LinkedList) ne puisse pas être interdite d'insérer null. Même dans la mise en œuvre de NULL, NULL ne doit pas être inséré dans la file d'attente, car NULL est également utilisé comme valeur de retour spéciale pour la méthode du scrutin, indiquant que la file d'attente ne contient pas d'éléments.
La file d'attente implémente les versions basées sur l'élément des méthodes Equals et HashCode, mais a hérité de la version basée sur l'identité de la classe d'objets, car pour les files d'attente avec les mêmes éléments mais différents attributs de tri, la nature égale des éléments n'est pas toujours de la même nature. .
Utilisez une file d'attente à Java pour simuler avec la collection LinkedList
Méthodes utilisant la collection LinkedList et utilisant des opérations de file d'attente de simulation collective de l'API telles que
File d'attente
void addlast (e e);
File d'attente
E supprimezfirst ();
Être vide
Boolean iSempty ();
Par exemple le code
Package CoreJavaone; Public void enqueue (int data) {this.queue.addlast (data);} public int deQueue () lève nocomentexception {return this.queue.remove first ();} public static void main (String [] args) {simulingQueue q = Nouveau SimulatEue (); Q.Enqueue (1); Q.enqueue (2); println (data);}}}