Une pile dans l'informatique est une structure de données de liste du dernier in_first-out-out (LIFO). Cela signifie ajouter un nouvel élément, l'élément est poussé à l'avant de la liste; Et pour supprimer un élément, l'élément sort de l'avant de la liste. L'élément avant peut également être jeté, ce qui signifie le lire mais ne pas le retirer.
Le nom «Deque» est la forme courte de la «file d'attente à double extrémité», prononcée «deck» prononcée. Le Deque est un FIFO et une structure de données LIFO List en Java. Eh bien, également à Java, le deque est une interface à partir de laquelle les classes peuvent être implémentées. Java a déjà les classes suivantes implémentées: ArrayDeque, ConcurrentLinkEdDeque, LinkedBlockingDeque, LinkedList. La classe Arraydeque a été choisie pour être étudiée dans cet article.
Voici les méthodes correspondantes Java ArrayDeque pour la file d'attente:
File d'attente | Arrayeque |
---|---|
enquérir | ajouter |
déshabiller | retirer |
jeter un coup d'œil | jeter un coup d'œil |
Voici les méthodes correspondantes Java ArrayDeque pour la pile:
Empiler | Arrayeque |
---|---|
pousser | pousser |
populaire | populaire |
jeter un coup d'œil | jeter un coup d'œil |
Remarque: la méthode peek () est la même pour les deux comportements. De plus, retirer () et pop () sont très similaires; Ils sont expliqués ci-dessous.
Construire une arrayeque
La classe Arraydeque est dans le java.user.* package, qui doit être importé. Il compte trois constructeurs, dont deux sont expliqués ici.
Public ArrayDeque ()
Cela crée un désactive vide, comme le montre le segment de code suivant:
Cinq éléments ont été ajoutés. Le nom du deque ici est, dq.
Arraydeque public (Collection C)
Ce constructeur surchargé, crée un déso. Le segment de code suivant l'illustre:
DQ1 a été créé à partir de DQ.
Méthodes de la classe Arraydeque
Public Boolean Add (E E)
Ceci est l'équivalent de la mise. Il ajoute un élément à la fin du deque. Le programme suivant illustre ceci:
public int size ()
Cela renvoie la taille (longueur) du deque. Le programme suivant illustre ceci:
La sortie est 5.
public e supaire ()
Ceci est l'équivalent de la déshabitation. Il supprime un élément de l'avant de la liste. Le programme suivant illustre ceci:
La sortie est:
F g h i jmontrant un comportement FIFO.
public e peek ()
Cela lit l'élément à l'avant du deque sans le retirer. Le programme suivant illustre ceci:
La sortie est:
F f f f findiquant que rien n'a été supprimé, et le premier élément vient d'être lu cinq fois.
Poussière de vide public (e e)
Cela ajoute un élément à l'avant du deque. Le programme suivant illustre ceci:
La sortie est:
J I H G Fmontrant un comportement LIFO.
public e pop ()
Cela supprime et renvoie le premier élément du Deque. Le programme suivant illustre ceci:
La sortie est:
J I H G Fmontrant un comportement LIFO.
Public Void Forach (Action des consommateurs)
Cette méthode foreach peut être utilisée pour accéder à chaque élément du deque. Le programme suivant l'utilise pour imprimer tous les éléments du deque:
La sortie est:
J I H G FL'article est une variable fictive qui représente chaque élément du deque. Notez la façon dont il a été utilisé. Remarque l'utilisation de l'opérateur de flèche, -> . L'itération a été effectuée dans l'ordre inverse.
Iterator iterator ()
Cela renvoie un itérateur qui peut être utilisé pour éliminer un élément dans le deque. Cependant, cette action prend plus de temps que le retrait d'un élément à l'avant ou à l'arrière du deque. L'énoncé suivant retournerait l'itérateur pour les caractères d'un deque.
où iter est l'objet itérateur, et dq est l'objet deque.
L'itérateur a les méthodes suivantes:
booléen hasnext (): revient vrai si l'itération a plus d'éléments.
E next (): renvoie l'élément suivant de l'itération.
Par défaut void retirait (): supprime de la liste, le dernier élément renvoyé par cet itérateur (suivant).
Notez qu'il n'a pas de méthode pour insérer un élément dans le deque.
Supprimer un élément dans Deque
Le programme suivant supprime «H» au milieu de la liste de deque: F, G, H, I, J:
Importer Java.user.*La sortie est:
J i g fNotez que Next () devait être appelé trois fois.
Conclusion
À Java, le Deque est à la fois une collection FIFO et LIFO. Deque in Java est en fait une interface à partir de laquelle une classe doit être implémentée avant que le deque puisse être utilisé. Heureusement, Java a déjà les classes implémentées de Deque suivantes: ArrayDeque, ConcurrentLinkEdDeque, LinkedBlockingDeque, Linkedlist. L'opération pour Arraydeque a été expliquée ci-dessus.