JAVA KURS COLLECTION
COLLECTIONS Christa Schneider 2
COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object) boolean add(object) boolean remove(object) Object[] toarray Iterator <E> iterator Beschreibung Liefert die Anzahl der Elemente Liefert true, wenn kein Element vorhanden ist Liefert true, wenn das Objekt vorhanden ist Fügt das übergebene Objekt ein Entfernt das übergebene Objekt, wenn vorhanden Gibt Array zurück, das alle Element der Collection enthält Gibt Iterator-Objekt über Elemente der Collection zurück Christa Schneider 3
LIST (ARRAYLIST, LINKEDLIST) Liste von Elementen unterschiedlichen Typs, auf deren Elemente sequenziell oder wahlfrei zugegriffen werden kann. Duplikate sind möglich ArrayList = einfach verkettete Liste LinkedList = doppelt verkettete Liste Methode Beschreibung add (int index, Object element) Object get (int index) int indexof(object o) Object set (int index, Object element) remove (int index) clear() Fügt angegebenes Objekt des entsprechenden Typs an angegebener Position ein. Gibt Element an der Stelle index zurück Ermittelt Index des ersten Vorkommens des übergebenen Objekts; wenn Objekt nicht enthalten, -1 Ersetzt Element an der Stelle index durch übergebenes Objekt Entfernt Element an der Stelle index Entfernt alle Elemente aus der Liste Christa Schneider 4
MAPS (HASHMAP, TREEMAP) Schüsselpaare keine doppelten Einträge möglich Methode boolean isempty() void clear() boolean equals (Object o) int size() boolean containskey(object key) boolean containsvalue(object value) v get(object key) v put(k key, v value) boolean remove (Object key) Set <k> keyset() Beschreibung Liefert true, wenn keine Wertpaare vorhanden sind Entfernt alle Wertpaare Vergleicht das übergebene Objekt Liefert die Anzahl der Wertpaare Liefert true, wenn der Schlüssel gefunden wurde Liefert true, wenn ein/mehrere Werte gefunden wurden Liefert den Wert zu dem übergebenen Schlüssel speichert das Wertpaar in der Map Entfernt Objekt des übergebenen Schlüssels Gibt Set zurück, das die Schlüssel der Map enthält Christa Schneider 5
SET (HASHSET, TREESET) keine Duplikate kein ListIterator möglich! (aber Iterator) HashSet = unsortierte Collection für schnellen Zugriff TreeSet = sortierte Collection Methode boolean add(object o) Object first() Object last() int size() boolean remove(int index) SortedSet <E> headset (Object o) SortedSet <E> subset (Object a, Object b) Beschreibung Fügt ein Element der Liste hinzu. Wenn das Element bereits existiert wird false zurückgeliefert. Liefert das erste Objekt der Liste Liefert das letzte Objekt der Liste Liefert die Anzahl der Wertpaare Löscht das Element an der Stelle index Gibt den Teil des TreeSets zurück, dessen Elemente kleiner sind als das übergebene Object Gibt den Teil des TreeSets zurück, dessen Elemente zwischen a und b liegen. Christa Schneider
VECTOR Ein Vector ist vergleichbar mit einem dynamischen Array Die Größe kann sich während der Lauzeit ändern. Aufruf: Vector vec = new Vector(); Methode addelement (Object o) remove (int index) clear() insertelementat (Object o, int index) Object get (int index) boolean add(object o) boolean add(int index, Object o) int size() Beschreibung fügt ein neues Element dazu entfernt das Element an der Stelle index entfernt alle Elemente fügt ein neues Element an der Stelle index ein. liefert ein Element aus der Liste fügt ein Element an die Liste an. fügt ein Element an der Stelle index hinzu. liefert die Anzahl der Elemente Christa Schneider 7
ITERATOR Ein Iterator dient dazu, eine Collection sequenziell (von vorne nach hinten) zu durchlaufen. interface java.util. Iterator<E> Methode boolean hasnext() Object next() void remove() Beschreibung prüft, ob weitere Elemente vorhanden sind holt das nächste Element und setzt den Positionszeiger auf das nächste Element entfernt das Element aus der Collection, das beim letzten Aufruf der Mehtode next zurückgeliefert wurde. Christa Schneider 8
ITERATOR Nehmen wir wieder eine Collection c. Sie ist mit String typisiert: Collection <String> c = new LinkedList <String> (); Soll diese Liste mit einem Iterator abgelaufen werden, so ist herkömmlich zu schreiben: for ( Iterator i = c.iterator(); i.hasnext(); ) { String s = (String) i.next();... } Mit Generics wird der Typ des Iterators vorgeschrieben, und die Typanpassung kann entfallen. for ( Iterator<String> i = c.iterator(); i.hasnext(); ) { String s = i.next();... } Christa Schneider 9
LISTITERATOR Christa Schneider 10
WELCHE KLASSE SOLL ICH BENUTZEN? Use Vector Schneller Zugriff auf die Elemente durch index Optimiert für Speicherplatz Nicht optimiert für Einfügen und Löschen Use ArrayList Wie Vector Bessere Performanz Use Linked list Schnelles Einfügen und Löschen Nicht für freien Zugriff optimiert Christa Schneider 11
WANN, WAS? Use Sets Wenn eine Liste ohne Duplikate benötigt wird. Use Maps Sehr schneller Zugriff über Schlüssel Schnelles Einfügen und Löschen von Elementen Keine Duplikate erlaubt