[Java] File d'attente, Deque

Je suis sorti quand j'étudiais Java Gold, alors je l'ai griffonné.

Queue<E> Hériter de la collection \ . Autrement dit, c'est une chose pour utiliser plusieurs données ensemble comme un tableau. Ensuite, lorsque j'ai recherché le mot File d'attente sur un certain site de traduction en anglais pour voir ce qui est différent des autres collections,

** 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.

Méthode

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 \ . Le nom officiel est "Double file d'attente" Comme son nom l'indique, il s'agit d'une file d'attente qui vous permet d'insérer et de supprimer des éléments des deux côtés.

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.

Méthode

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

[Java] File d'attente, Deque
Java
Java
[Java] Collection-List / Set / Map / Stack / Queue
Apprendre Java (0)
[Java] tableau
Java protégé
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Méthodes Java
Méthode Java
Tableau Java
[Java] ArrayDeque
java (méthode)
Journée Java 2018
Chaîne Java
java (tableau)
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
java réfléchissant 获 获 举
java (interface)
Tableau Java
Étudier Java ―― 1
[Java] Array
[Java] Polymorphisme
Étudier Java # 0
Revue Java
framework java
Fonctionnalités Java
[Java] Héritage
FastScanner Java
Fonctionnalités Java
java débutant 3
Mémo Java
java (encapsulation)
Héritage Java
[Java] Surcharge
Les bases de Java
Décompiler Java
note java
java débutant
interface [java]
Collection Java9
Les bases de Java
Méthodes Java
Journal de Java
Héritage Java
[Java] enum (type d'énumération)
[Java] FizzBuzzCounter
Étudier Java ―― 8