Queue

Die Datenstruktur für eine Warteschlange: die Queue.

java.util.Queue

Eine Queue ist ähnlich einem Stack ein Behälter, in den Elemente eingefügt und nur in einer bestimmten Reihenfolge wieder entnommen werden können. Bei den Queues gilt das First In First Out (=FIFO) Prinzip: Das Einfügen eines Elements erfolgt an einem Ende und heisst EnQueue. Die Entfernung eines Elements erfolgt dann am anderen Ende und heisst DeQueue. Das heisst also, das erste Elemente, das einer Queue eingefügt wird, ist das Element das zuerst der Queue entnommen werden kann. Queues können in ihrer Grösse beschränkt oder unbeschränkt sein.

queue2

Auf Deutsch könnte man Queues als “Warteschlangen” bezeichnen. Wir kennen Warteschlangen von unserem Alltag: Beispielsweise vom Einkaufen, wo es eine Schlange von Kunden gibt, die an der Kasse auf einen Kassierer warten. Ein Kunde stellt sich zu hinterst an und rückt “in der Warteschlange” vor, wenn vorherigen Kunden bedient wurden.

queue1

Beispiel:

1
2
3
4
5
6
7
8
Queue<String> customers = new LinkedList<>();
customers.offer("Kunde 1");
customers.offer("Kunde 2");
customers.offer("Kunde 3");

System.out.println(customers.peek()); // Ausgabe: Kunde 1, Grösse immer noch 3
System.out.println(customers.poll()); // Ausgabe: Kunde 1, Grösse 2
System.out.println(customers.poll()); // Ausgabe: Kunde 2, Grösse 1

Alle Methoden vom Interface java.util.Queue

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
 * Fügt das angegebene Element in diese Queue ein,
 * wenn dies möglich ist, ohne Kapazitätsbeschränkungen zu verletzen.
 * Bei Erfolg wird true zurückgegeben. Eine IllegalStateException wird ausgelöst, wenn derzeit
 * kein Platz verfügbar ist.
 */
boolean add(E e);

/*
 * Fügt das angegebene Element in diese Queue ein,
 * wenn dies möglich ist, ohne Kapazitätsbeschränkungen zu verletzen.
 * Bei Erfolg wird true zurückgegeben und sonst wird false zurückgegeben.
 *
 * Bei der Verwendung einer Queue mit Kapazitätsbeschränkungen ist diese Methode in der Regel add(E e) vorzuziehen,
 * da bei Verletzung der Kapazitätsbeschränkungen keine Exception geworfen wird, sondern false zurückgegeben wird.
 *
 */
boolean offer(E e);

/*
 * Gibt das Element am Anfang des Queues zurück und entfernt es in der Queue.
 * Falls die Queue leer ist, dann wird null zurückgegeben.
 */
E poll();

/*
 * Gibt das Element am Anfang des Queues zurück und entfernt es in der Queue.
 * Diese Methode unterscheidet sich von poll() nur darin, dass sie eine Exception auslöst, wenn die Queue leer ist.
 */
E remove();

/*
 * Gibt das Element am Anfang des Queues zurück, entfernt es aber nicht.
 * Gibt null zurück, wenn die Queue leer ist.
 */
E peek();

/*
 * Gibt das Element am Anfang des Queues zurück, entfernt es aber nicht.
 * Diese Methode unterscheidet sich von peek() nur darin, dass sie eine Exception auslöst, wenn die Queue leer ist.
 */
E element();
Aufgaben

Aufgaben

Aufgaben zu Modul #J6 - Java Collections


Last modified January 13, 2026: Fix linter (29253f4ba)