Je suis sorti quand j'étudiais Java Gold, alors je l'ai griffonné.
Queue<E>
Hériter de la collection \
** Rangée (en attente de personnes et de véhicules) **
Et cela. L'intérieur de () est un miso.
En d'autres termes, il a une structure de données appelée "FIFO (First-in-First-Out)" qui vous permet de récupérer la première chose que vous mettez. Les gens qui attendent leur tour viendront en premier et ceux qui feront la queue en premier.
C'est pourquoi on l'appelle parfois une «file d'attente».
Cependant, cela ne signifie pas qu'il doit être mis en œuvre séparément.
Lancer une exception en cas d'erreur | Renvoie null en cas d'erreur | |
---|---|---|
Insérer | add(e) | offer(e) |
Sortir | remove() | poll() |
référence | element() | peak() |
QueueTest.java
import java.util.Queue;
import java.util.ArrayDeque;
public class QueueTest {
public void myQueue() {
Queue<Integer> queueTest = new ArrayDeque<Integer>();
for(int i=0; i < 10; i++) {
//Insérer une valeur dans la file d'attente
queueTest.add(i);
}
//Insérer une valeur dans la file d'attente
queueTest.offer(100);
System.out.println(queueTest);
//Extraire le début
Integer r = queueTest.remove();
System.out.println("remove value: " + r);
//Voir haut
System.out.println(queueTest.element());
//Extraire le début
Integer p = queueTest.poll();
System.out.println("poll value: " + p);
//Voir haut
System.out.println(queueTest.peek());
System.out.println(queueTest);
}
}
Résultat de l'exécution:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100]
remove value: 0
1
poll value: 1
2
[2, 3, 4, 5, 6, 7, 8, 9, 100]
Deque<E>
Hériter de la file d'attente \
Au fait, Deque semble être lu comme un "deck". Je me suis dit: "N'est-ce pas" dequeue "...", mais avec "dequeue" qui signifie "opération pour récupérer des données" C'était le bordel. Il doit y avoir quelqu'un qui a fait la même erreur.
Lancer une exception en cas d'erreur | Renvoie null en cas d'erreur | |
---|---|---|
Insérer (haut) | addFirst(e) | offerFirst(e) |
Insérer (fin) | removeFirst() | pollFirst() |
Sortir (haut) | getFirst() | peakFirst() |
Sortir (fin) | addLast() | offerLast() |
Référence (haut) | removeLast() | pollLast() |
Référence (fin) | getLast() | peakLast() |
Pourquoi n'est-ce pas l'élément de référence First / Last pour l'exception throw ...
DequeTest.java
import java.util.Deque;
import java.util.ArrayDeque;
public class DequeTest {
public void myDeque() {
Deque<Integer> dequeTest = new ArrayDeque<Integer>();
for(int i=0; i < 10; i++) {
//Insérer la valeur dans la file d'attente depuis le début
dequeTest.addFirst(i);
}
System.out.println(dequeTest);
//Extraire la fin
Integer r = dequeTest.removeLast();
System.out.println("remove value: " + r);
//Voir la fin
System.out.println(dequeTest.getLast());
//Extraire le début
Integer p = dequeTest.pollFirst();
System.out.println("poll value: " + p);
//Voir haut
System.out.println(dequeTest.peekFirst());
System.out.println(dequeTest);
}
}
Résultat de l'exécution:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
remove value: 0
1
poll value: 9
8
[8, 7, 6, 5, 4, 3, 2, 1]
Vous pouvez voir que l'ordre d'insertion des valeurs de 0 à 9 est l'inverse de Queue. Puisqu'il peut être inséré dans les deux sens, il peut également être utilisé comme une pile qui utilise la «méthode LIFO (Last-in-First-Out) / last-in-first-out».
Recommended Posts