Merge branch 'master' of https://git.haw-hamburg.de/pm1-tutorium/slides
This commit is contained in:
commit
8095581235
|
@ -7,4 +7,60 @@ footer: Henri Burau und Eva Meinen
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# Collections
|
# Collections
|
||||||
Abstrakte Datentypen. Beh
|
Abstrakte Datentypen. Behälter für Daten mit verschiedenen Eigenschaften.
|
||||||
|
Die wichtigsten Intefaces sind `Collection`, `List`, `Set` und `Queue`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Collection
|
||||||
|
Supertyp von `List`, `Set` und `Queue`. Repräsentiert eine Gruppe von Objekten, Elemente genannt.
|
||||||
|
|
||||||
|
* Es gibt keine direkte Implementation von dem Interface `Collection` sondern nur von seinen Subtypen.
|
||||||
|
* Collections können *sortiert* oder *unsortiert* sein.
|
||||||
|
* Collections können Duplikate zulassen oder verbieten.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Set
|
||||||
|
|
||||||
|
* Mengen sind unsortiert und lassen keine Duplikate zu.
|
||||||
|
|
||||||
|
Mengen ergänzen das Interface `Collection` um keine Methoden. Der einzige Unterschied zwischen `Collection` und `Set` sind die vorgeschriebenen Implementationen von `add`, `equals` und `hashCode`.
|
||||||
|
|
||||||
|
Häufig verwendete Implementationen von `Set` sind: `HashSet` und `TreeSet`.
|
||||||
|
|
||||||
|
---
|
||||||
|
# List
|
||||||
|
|
||||||
|
* Listen sind sortiert und lassen Duplikate zu.
|
||||||
|
|
||||||
|
Das Interface `List` ergänzt 4 weitere Methoden zu dem Interface `Collection`, welche einen indizierten Zugriff auf die Elemente zulassen. Der Index startet, wie bei Arrays, von 0. Die Methoden sind:
|
||||||
|
|
||||||
|
* `<E> get(int index)`
|
||||||
|
* `int indexOf(Object o)`
|
||||||
|
* `int lastIndexOf(Object o)`
|
||||||
|
* `boolean remove(int index)`
|
||||||
|
|
||||||
|
Folgende Implementationen von `List` werden häufig verwendet: `ArrayList` und `LinkedList`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Queue
|
||||||
|
|
||||||
|
* Queues sind sortiert und erlauben Duplikate.
|
||||||
|
|
||||||
|
Das Interface `Queue` ist eine `Collection` in der Elemente vor ihrer Bearbeitung abgespeichert werden können. Die meisten Queues operieren dabei nach den FIFO-Prinzip. Das Interface erlaubt 3 Operationen:
|
||||||
|
* Elemente hinzufügen mit `boolean add(E element)` oder `boolean offer(E element)`
|
||||||
|
* Elemente entnehmen mit `E remove()` oder `E poll()`
|
||||||
|
* Das oberste Element zurückgeben ohne es zu entnehmen `E element()` oder `E peek()`
|
||||||
|
|
||||||
|
Als Implementation wird häufig eine `LinkedList` verwendet.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Aufgaben
|
||||||
|
|
||||||
|
* Wie verhält sich die Methode `boolean add(E element)` und in welchem Interface wird sie zuerst spezifiziert?
|
||||||
|
* Mit welcher Methode können mehrere Elemente einer `Collection` ab einem gegebenen Index in eine `List` eingefügt werden?
|
||||||
|
* Wo ist spezfiziert welche Konstruktoren `Collections`anbieten und warum stehen sie nicht im Interface?
|
||||||
|
|
Loading…
Reference in New Issue