Premium Partner

JAVA & Objektorientiertes Programmieren 2

Erweiterung der ersten Kartei

Erweiterung der ersten Kartei


Kartei Details

Karten 203
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 19.01.2017 / 09.01.2024
Lizenzierung Keine Angabe
Weblink
https://card2brain.ch/box/20170119_java_objektorientiertes_programmieren_2
Einbinden
<iframe src="https://card2brain.ch/box/20170119_java_objektorientiertes_programmieren_2/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Welche Implementationen der List<E> gibt es?

ArrayList, LinkedList, Stack*, Vector* etc

*Hinweis: Sehr alte Klassen, bessere Alternativen vorhanden

Zeige eine Implementation einer ArrayList<Temperatur>

(siehe Bild)

Hinweis: Für add() reicht der Typ Collection, erst für set() und get() benötigt man den Typ List (zweifacher cast hier exemplarisch. Nicht elegant!)

Wie ist das Interface Queue aufgebaut?

Spezialisiert die Semantik der Collection zu einer Schlange: Meistens nach FIFO-Semantik (first in, first out), kann aber auch priorisiert sein

Typische Methoden:
offer() - Hängt ein Element am Ende an
- poll() - Entnimmt ein Element am Anfang

(siehe Bild)

Was sind Eigenschaften einer Queue<E>?

Definiert eine Queue von Elementen vom Typ E
- Queue kann eine statische, beschränkte Grösse haben
- Elemente werden am Schwanz (tail) angehängt
- Elemente werden am Kopf (head) entnommen

Was ist der typische Verwendungszweck von einer Queue<E>?

Zwischenspeichern von Objekten vor der Verarbeitung
Beispiele: Warteschlange, Buffer, Unix-Pipe, Druckerqueue

Semantik meist nach FIFO-Prinzip

Welche Arten von Implementationen gibt es für die Queue<E>?

ArrayDeque, DelayQueue, LinkedBlockingQueue, PriorityQueue etc.

Zeige ein Beispiel einer ArrayBlockingQueue<Temperatur>

(siehe Bild)

Beispiel der ArrayBlockingQueue-Implementation:
offer() blockiert (wartet) wenn voll, poll() wenn leer

Wie ist die Deque<E> aufgebaut?

Spezialisiert die Semantik der Collection zu einer Queue welche in beide Richtungen verwendet werden kann

Das ermöglicht u.a. auch einen Stack: FILO-Semantik (first in, last out), was einen klassischen "Stapelspeicher" repräsentiert.

push() - Element auf Stack legen
pop() - Element von Stack abheben

(siehe Bild)