Java Collections

From no name for this wiki
Jump to: navigation, search

Kleine Zusammenfassung der Java Collections

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.

Interface NavigableSet<E>

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

Interface NavigableMap<K,V>

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.