Man kann die Container-Klassen grob den folgenden Kategorien zuordnen:

  • Listen (Interface List<E>)
    • Speichern ihre Elemente der Reihe nach entweder in einem Array oder als sogenannte verkettete Liste, bei der jedes Objekt seinen Nachfolger und vielleicht auch seinen Vorgänger kennt.
  • Mengen (Interface Set<E>)
    • Enthalten keine doppelten Elemente.
  • Assoziativspeicher (Interface Map<K, V>)
    • Ordnen einem Schlüssel K (key) einem Wert V (value) zu.
  • Schlangen (Interface Queue<E>)
    • Sind hauptsächlich dafür gedacht, Objekte am Ende hinzuzufügen und am Anfang wegzunehmen

Linked List


LinkedList<E> l = new LinkedList<E>();

In einer Linked List ist jedes Element ein Value und eine Referenz auf das nächste Objekt. Man kann nicht über einen Index darauf zugreifen. Um Daten einzufügen muss aber nur eine Referenz geändert werden. Es gibt ein eigenes Tail und ein First Objekt.

Methoden


MethodeBeschreibung
add([int index,] <E> element)Fügt ein Element an/ein
addFirst(<E> element)fügt vorne ein Element an
addLast(<E> element)fügt hinten ein Element an
get(int index)
getFirst()
getLast()
contains(<E> element)
indexOf(<E> element)
remove({<E> element|int index})
isEmpty()
pop()Entfernt das letzte Element
push(<E> element)Fügt am Ende ein Objekt an
size()

Array List


ArrayList<E> a = new ArrayList<E>();

Eine Array List ist im Hintergrund eine normales Array. Es kann per Index auf die Elemente zugegriffen werden. Wenn ein Element eingefügt wird muss aber das gesamte Array kopiert werden.

Methoden

MethodeBeschreibung
add([int index,] <E> element)Fügt ein Element an/ein
addFirst(<E> element)fügt vorne ein Element an
addLast(<E> element)fügt hinten ein Element an
get(int index)
getFirst()
getLast()
contains(<E> element)
indexOf(<E> element)
remove({<E> element|int index})
isEmpty()
pop()Entfernt das letzte Element
push(<E> element)Fügt am Ende ein Objekt an
size()

Tree Set


TreeSet<Integer> t = new TreeSet<Integer>();

Das ist ein balancierter Binärbaum. Jedes Element hat ein Child das größer ist und eins das kleiner ist. Das erste Element das eingefügt wird ist die Wurzel. Wenn ein neues Element hinzugefügt wird wird der Baum neu aufgebaut um die Balance zu halten. Balance bedeutet, dass alle Zweige +-1 gleich lang sind.

HashMap


HashMap<Integer, Integer> h = new HashMap<>();

Eine HashMap ist ein Key > Value Store.

Beim initialisieren deklarieren

Beispiel

HashMap<String, HashMap<Character, Double>> BaumKoffizienten= new HashMap<>() {  
    {  
        put("Fichte", new HashMap<>(){  
            {  
            put('A' , 0.85149);  
            put('B', 0.60934);  
            put('C', -0.00228);  
            }  
        });  
  
        put("Tanne", new HashMap<>(){  
            {  
                put('A' , 1.76896);  
                put('B', 0.59175);  
                put('C', 0.0);  
            }  
        }); 
    }  
};

Iterator


Die Klasse Iterator ist ein Hilfsmittel, um mit dem selben Code die Elemente verschiedener Datenstrukturen zu durchlaufen, die das Interface Collection implementieren.