[Java] Warteschlange, Deque

Ich kam heraus, als ich Java Gold studierte, also kritzelte ich es.

Queue<E> Sammlung erben \ . Das heißt, es ist eine Sache, um mehrere Daten zusammen wie ein Array zu verwenden. Als ich dann das Wort Queue auf einer bestimmten englischen Übersetzungsseite nachgeschlagen habe, um festzustellen, was sich von anderen Sammlungen unterscheidet,

** Reihe (wartet auf Personen und Fahrzeuge) **

Und das. Das Innere von () ist ein Miso.

Mit anderen Worten, es hat eine Datenstruktur namens "FIFO (First-in-First-out)", mit der Sie das erste, was Sie eingeben, abrufen können. Leute, die darauf warten, dass sie an die Reihe kommen, werden an erster Stelle stehen, und diejenigen, die in der Schlange stehen, werden an erster Stelle stehen.

Deshalb wird es manchmal als "Warteschlange" bezeichnet.

Dies bedeutet jedoch nicht, dass es separat implementiert werden muss.

Methode

Bei Fehler eine Ausnahme auslösen Gibt bei einem Fehler null zurück
Einfügen add(e) offer(e)
Mitnahme remove() poll()
Referenz 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++) {
            //Wert in Warteschlange einfügen
            queueTest.add(i);
        }
        //Wert in Warteschlange einfügen
        queueTest.offer(100);

        System.out.println(queueTest);
        
        //Extrahieren Sie den Anfang
        Integer r = queueTest.remove();
        System.out.println("remove value: " + r);

        //Siehe oben
        System.out.println(queueTest.element());

        //Extrahieren Sie den Anfang
        Integer p = queueTest.poll();
        System.out.println("poll value: " + p);

        //Siehe oben
        System.out.println(queueTest.peek());

        System.out.println(queueTest);
    }
}

Ausführungsergebnis:

[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> Warteschlange erben \ . Der offizielle Name lautet "Double Ended Queue". Wie der Name schon sagt, handelt es sich um eine Warteschlange, in die Sie Elemente an beiden Enden einfügen und löschen können.

Deque scheint übrigens als "Deck" gelesen zu werden. Ich dachte: "Ist es nicht" Warteschlange "...", aber mit "Warteschlange", was "Operation zum Abrufen von Daten" bedeutet. Es war eine Katastrophe. Es muss jemanden geben, der den gleichen Fehler gemacht hat.

Methode

Bei Fehler eine Ausnahme auslösen Gibt bei einem Fehler null zurück
Einfügen (oben) addFirst(e) offerFirst(e)
Einfügen (Ende) removeFirst() pollFirst()
Herausnehmen (oben) getFirst() peakFirst()
Herausnehmen (Ende) addLast() offerLast()
Referenz (oben) removeLast() pollLast()
Referenz (Ende) getLast() peakLast()

Warum ist es nicht das ReferenzelementFirst / Last für den Ausnahmewurf ...

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++) {
            //Wert von Anfang an in die Warteschlange einfügen
            dequeTest.addFirst(i);
        }

        System.out.println(dequeTest);

        //Extrahieren Sie das Ende
        Integer r = dequeTest.removeLast();
        System.out.println("remove value: " + r);

        //Siehe Ende
        System.out.println(dequeTest.getLast());

        //Extrahieren Sie den Anfang
        Integer p = dequeTest.pollFirst();
        System.out.println("poll value: " + p);

        //Siehe oben
        System.out.println(dequeTest.peekFirst());

        System.out.println(dequeTest);
    }
}

Ausführungsergebnis:

[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]

Sie können sehen, dass die Einfügereihenfolge der Werte von 0 bis 9 die Umkehrung der Warteschlange ist. Da es aus beiden Richtungen eingefügt werden kann, kann es auch als Stapel verwendet werden, der die "LIFO-Methode (Last-in-First-out) / Last-in-first-out" verwendet.

Recommended Posts

[Java] Warteschlange, Deque
Java
Java
[Java] Sammlungsliste / Set / Map / Stack / Queue
Java lernen (0)
[Java] -Array
Java geschützt
[Java] Modul
Java-Array
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Java-Array
[Java] ArrayDeque
Java (Methode)
Java Day 2018
Java-Zeichenfolge
Java (Array)
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Java (gesetzt)
Java-Shell-Sortierung
[Java] compareTo
Java studieren -5
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Array
Java studieren ―― 1
[Java] Array
[Java] Polymorphismus
Java # 0 studieren
Java-Überprüfung
Java-Framework
Java-Funktionen
[Java] Vererbung
FastScanner Java
Java-Funktionen
Java Anfänger 3
Java-Memo
Java (Kapselung)
Java-Vererbung
[Java] Überladung
Java-Grundlagen
Java dekompilieren
Java Note
Java Anfänger
[Java] -Schnittstelle
Java9-Sammlung
Java-Grundlagen
Java-Methoden
Java-Tagebuch
Java-Vererbung
[Java] enum (Aufzählungstyp)
[Java] FizzBuzzCounter
Java studieren ―― 8