Java Collections
Kleine Zusammenfassung der Java Collections
Contents
Interface Collection<E>
Collection ist eine Sammlung von Objekten. Es ist nicht möglich, auf einen bestimmten Index zuzugreifen. Iterationen über die Sammlung ist möglich.
Interface List<E>
List erbt von Collection. Es kann auf einen beliebigen Index zugegriffen werden (random access). Mit dem ListIterator kann vorwaerts und rueckwaerts navigiert werden.
ArrayList
ArrayList speichert die Elemente in einem Array. Die get und set Methoden benoetigen eine konstante Zeit. Nullwerte sind zugelassen.
Vector
Vector, wie ArrayList, aber synchronized
Stack
Stack erbt von Vektor und fuegt Stackoperationen wie push, pop und peek dazu.
Interface Deque<E>
Deque ist wie eine eine Linked List, wo auf das Ende und auf den Anfang zugegriffen werden kann. Erbt von Queue.
ArrayDeque
In ArrayDeque sind keine Nullelemente zugelassen. Diese Klasse ist schneller als Stack, wenn sie als Stack genutz wird und auch schneller als Linded-List, wenn sie als Queue genutzt wird.
LinkedList
Linked List Elemente können sehr schnell hinzugefügt werden. Aber der Zugriff auf ein beliebiges Element ist eher langsam. Iteratoin über die Elemente ist wiederum schnell.
NavigableSet erlaubt Zugriffe auf ein Set wie higher, lower oder floor.
TreeSet<E>
Operationen TreeSet basieren auf das Comparable, Comparator Interface anstatt auf die equals Methode.
Interface Queue<E>
Queue bietet Funktionen wie offer, peek und poll.
PriorityQueue
PriorityQueue. Die Elemente werden gemäss Comparable oder Comparator in der Queue priorisiert. Seit Java 1.5
Interface Set<E>
Set. Im Unterschied zu Collection enthaelt ein Set keine doppelten Elemente. Erbt von Collection.
HashSet
HashSet basiert auf einer HashMap.
LinkedHashSet
LinkedHashSet basiert auf einer LinkedList. Die Iterationorder ist gewaehrleistet, gemaess der Reihenfolge Einfuegen der Elemente.
EnumSet
EnumSet fuer Enumerations eines Types.
Interface Map<K,V>
Map.
HashMap
HashMap basiert auf der equals und hashCode Methode von Object. Null-Keys und Null-Values sind zugelassen. Zugang ist nicht synchronisiert.
Hashtable
Hashtable basiert auf der hashCode und der equals Methode von Object. Zugang ist synchronisiert. Null-Keys und Null-Values sind nicht zugelassen. myMap.put("abc", null); führt zu einer Nullpointer-Exception.
EnumMap
EnumMap Sehr effiniente Map für Enums. Alle Enums müssen vom selben Typ sein. Intern als Array implementiert, darum so schnell und schlank.
IdentityHashMap
IdentityHashMap Hier wird nicht die equals Methode verwendet, sondern der == Operator. Es wird nicht die normale hashCode Methode verwendet, sondern identityHashCode.
WeakHashMap
WeakHashMap wenn das Keyobjekt nicht mehr referenziert wird (ausser in einer WeakHashMap), dann wird dieser Eintrag aus der WeakHashMap Instanz gelöscht. Basiert auf ==
LinkedHashMap
LinedHashMap. Intern wird eine dobule Linked List geführt. Die Iterationorder ist also so, wie die Elemente hinzugefügt wurden. Diese Implementation ist für Least Recently Used Caches geeignet. Siehe die Methode removeEldestEntry(java.util.Map.Entry).
NavigableMap gibt es seit Java 1.6. Erbt von SortedMap. Bietet funktionen wie higherKey und higherEntry.
TreeMap
TreeMap. Elemente werden nach der Ordnung der Keys sortiert (Comparable Interface) oder durch den im Konstruktor mitgegebnen Comparator.
Interface SortedMap<K,V>
SortedMap bietet Funktionen wie firstKey, lastKey, headMap, tailMap
TreeMap
Interface SortedSet<E>
SortedSet Sorted Set bietet Funktionen wie first, last, subset.
TreeSet
Operationen TreeSet basieren auf das Comparable, Comparator Interface anstatt auf die equals Methode.