Sie sind auf Seite 1von 18

Collections

Datenstrukturen

berblick und Lernziele

List

ArrayList

Stack

Set

HashSet

TreeSet

Map

HashMap

TreeMap

Listen
ArrayList & Stack

ArrayList

Realisiert eine lineare Liste als dynamisches Array

Besonders bei berwiegend lesendem Zugriff oder bei kleinen Listen


vorzuziehen.

Wichtige Methoden

size()
add(Object o)
remove(Object o)
contains(Object o)
get(int index)
set(int i, Object o)

Anzahl Objekte die in der Liste verwiesen sind


Fge Objekt der Liste hinzu
Entfernt Objekt aus der Liste
- Prft ob ein Objekt in der Liste vorhanden ist
- Gibt das Objekt mit dem bergebenen Index zurck
- Tauscht Objekt am Index i mit neuen Objekt aus

Beispiel: ArrayList
Ausgabe:
Anzahl Artikel in Einkaufsliste: 4

Rinderhack 500g
Kaese 200g
Aepfel 6 Stueck
Kartoffeln 1kg
-----Aepfel 6 Stueck
Kaese 200g
Kartoffeln 1kg
Rinderhack 500g

Stack

LIFO-(Last-in-First-out-)Datenstruktur

Wichtige Methoden
empty()

- Boolsche Abfrage, ob Elemente im Stack vorhanden

push(Object o)

- Legt Objekt auf Stack (oder add(Object o) )

pop()

- Gibt das oberste Elemente auf dem Stack zurck

peek()

- Das oberste Element wird gelesen, aber nicht entfernt

search(Object o)

- Gibt die Distanz zum gesuchten Objekt im Stack zurck

Beispiel: Stack
Ausgabe:
4321

Sets
HashSet & TreeSet

HashSet

Basiert auf dem Hashverfahren -> schneller Zugriff durch Berechnung

Besonders bei groen Sets vorzuziehen.

Wichtige Methoden
add(Object o)

- Fgt ein Objekt dem HashSet hinzu (keine Duplikate)

contains(Object o)- Boolsche Abfrage, ob das Objekt im HashSet vorhanden ist


isEmpty()

- Boolsche Abfrage, ob min. ein Objekt vorhanden ist

size()

- Gibt die Anzahl Objekte zurck

remove(Object o) - Entfernt das Objekt aus dem HashSet


clear()

- Entfernt alle Elemente aus dem HashSet

Beispiel: HashSet
Lottozahlen
Aufgabe: Ausgabe von 6 zuflligen Lottozahlen (6 aus 49)
1) Erstelle Integer-HashSet
2) Erstelle Objekt Random zur
Generierung von Zufallszahlen
3) Erstelle Zufallszahl zwischen 1
und 49 und fge diese dem
HashSet hinzu (doppelte Zahlen
sind nicht mglich)

Mgliche Ausgabe:
16 48 20 38 24 8

4) Sobald 6 einzigartige Zahlen im


HashSet vorhanden sind, werden
diese mittels For-Schleife
ausgegeben

TreeSet

Immer sortiert

Schnelles hinzufgen/entfernen von Objekten

Wichtige Methoden
add(Object o)

- Fgt ein Objekt dem TreeSet hinzu

clear()

- Entfernt alle Objekte aus dem TreeSet

contains(Object o)

- Boolsche Abfrage, ob Objekt im TreeSet vorhanden

remove(Object o)

- Entfernt ein Objekt aus dem TreeSet

size()

- Gibt die Anzahl Objekte im TreeSet zurck

Beispiel: TreeSet
Ausgabe:
11
22
33
66
First: 11 - Last: 66

Maps
HashMap

HashMap

hnlich wie HashSet, nur wird auf ein weiteres Objekt verwiesen

Wichtige Methoden:
clear()

- Entfernt alle Objekte aus der HashMap

containsKey(Object key)

- Boolsche Abfrage, ob Key vorhanden

containsValue(Object val)

- Boolsche Abfrage, ob Wert vorhanden

get(Object key)

- Erhalte Objekt mit entsprechendem Key

put(Object key, Object val)

- Hinzufgen von neuem Wert mit Key

remove(Object key)

- Entfernt Objekt dem zugewiesenem Key

size()

- Gibt die Anzahl Objekte zurck

Beispiel: HashMap
Wrterbuch
Aufgabe: Erstellung eines Wrterbuchs Deutsch->Englisch
1) Erstelle HashMap mit einem
String als Key und einem
String als Value

2) Fge dem Wrterbuch das


deutsche Wort als Key und die
bersetzung als Value hinzu

Ausgabe:
Wasser: water
Wind: wind
Kartoffel: null
wind: null

3) Suche Key im Wrterbuch und


Ausgabe der bersetzung

TreeMap

hnlich wie TreeSet, nur wird auf ein weiteres Objekt verwiesen

Wichtige Methoden:
clear()

- Entfernt alle Objekte aus der TreeMap

containsKey(Object key)

- Boolsche Abfrage, ob Key vorhanden

containsValue(Object val)

- Boolsche Abfrage, ob Wert vorhanden

get(Object key)

- Erhalte Objekt mit entsprechendem Key

put(Object key, Object val)

- Hinzufgen von neuem Wert mit Key

remove(Object key)

- Entfernt Objekt dem zugewiesenem Key

size()

- Gibt die Anzahl Objekte zurck

Beispiel: TreeMap

Ausgabe:
Nr. 25: Thomas Mller
Nr. 1: Manuel Neuer
Nr. 2: null

Hilfreiche Quellen

http://www.torsten-horn.de/techdocs/java-collections.htm

http://openbook.rheinwerkverlag.de/javainsel9/javainsel_13_001.htm#mj245f5f8d5a858b46462d64e9b9
c0786b

https://docs.oracle.com/javase/7/docs/api/

http://de.wikipedia.org/wiki/Hashfunktion