FHNW: oopI2
Notizen und andere wichtige Merkmale aus dem Modul oopI2 an der FHNW (FS 16).
Notizen und andere wichtige Merkmale aus dem Modul oopI2 an der FHNW (FS 16).
-
- 1 / 12
-
Flashcards
Für was wird das Interface Iterable verwendet?
Iterable defines the contract that a class has to fulfill for its instances to be usable with the foreach statement.
(O'Reilly: Java Generics and Collections)
Was zeichnet Implementationen vom Interface Set aus?
- Beinhaltet keine Duplikate:
Es gibt keine e1.equals(e2); wenn e1 und e2 Elemente von einem Set sind.
- Hierarchie bis zu Set:
Iterable > Collection > Set
Was sind Eigenschaften von HashSet?
- Es ist eine konkrete Klasse
- HashMap wird im Hintergrund verwendet.
- Leitet von AbstractCollection > AbstractSet ab
- Implementiert das Set Interface und sorgt dafür das keine Duplikate existieren können.
- Verwendet eine HashMap Instanz im Hintergrund und garantiert deswegen keine einheitliche Reihenfolge beim iterieren.
- Auf add, remove, contains und size O(1)
- Sie ist nicht synchronized implementiert: Mehrere Threads können concurrently darauf zugreifen.
Was sind Eigenschaften von LinkedHashSet?
- Hash Table mit einer Implementation des Set Interfaces, welche eine voraussehbare Reihenfolge bei der Iteration hat.
- Differenz zu HashSet: Es verwaltet eine doppelte LinkedList für die Reihenfolge.
- Die Reihenfolge entspricht der Insertion-Order.
- Durch das Set Interface erlaubt es keine Duplikate.
- Sie ist nicht synchronized implementiert.
Was sind die Eigenschaften einer LinkedHashMap?
- HashMap mit einer LinkedList, welche eine voraussehbare Reihenfolge bei der Iteration gewährleistet.
- Differenz zu HashMap: Es verwaltet eine doppelte LinkedList für die Reihenfolge.
- Die Reihenfolge entspricht der Insertion-Order.
- Sie ist nicht synchronized implementiert.
Was sind Eigenschaften von TreeSet?
- Die Elemente sind nach ihrer natürlichen Ordnung geordnet oder von einem Comparator, welcher bei der Erstellung mitgegeben werden kann.
- Sortierung von links nach rechts
- Anzahl Ebenen: Etwa \(\log_2(n)\)
- Komplexität einer Suche, add, remove und contains: \(O(\log n)\)
- Das Interface von Set erlaubt keine Duplikate
- Sie ist nicht synchronized implementiert
Was sind Eigenschaften einer TreeMap?
- Die Elemente sind nach ihrer natürlichen Ordnung geordnet oder von einem Comparator, welcher bei der Erstellung mitgegeben werden kann.
- Sortierung von links nach rechts
- Anzahl Ebenen: Etwa \(\log_2(n)\)
- Komplexität einer Suche, add, remove und contains: \(O(\log n)\)
- Der Wert wird überschrieben, falls derselbe Key bereits verwendet wird. Keys müssen Unique sein.
- Sie ist nicht synchronized implementiert
Was sind Eigenschaften einer LinkedList?
Was sind Eigenschaften von ArrayDeque?
- Keine Kapazitäteinschränkung: Sie wächst wenn nötig.
- Null Elemente sind nicht erlaubt
- Nicht thread-safe: Falls kein synchronized Wrapper zur Verfügung gestellt wird erlaubt es kein concurrent Zugriff.
- Die meisten Operationen dauern konstant O(1). contains und alles was mit remove funktioniert, dauert O(n).
- In der Regel ist diese Klasse schneller als ein Stack und schneller als eine LinkedList, wenn sie als Queue eingesetzt wird.
Was sind Eigenschaften von ArrayList?
- Die Grösse passt sich laufend an.
- Es erlaubt alle Elemente und auch null
- Operationen wie size, isEmpty, get, set, iterator laufen konstant O(1)
- Elemente hinzufügen dauert O(n) wobei n die Anzahl zu hinzufügenden Elemente ist.
- Andere Operationen (Suche z.B.) dauern O(n) wobei n die Anzahl Elemente in der Liste ist.
Wie sieht die Java Collection Hierarchy etwa aus? Was für Arten von Collection gibt es?
Wie stehen die Datenstrukturen zueinander?