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