.

Neben den vielen Interfaces gibt es einige Klassen im Collections Framework die die Datenstrukturen repräsentieren. Diese Datenstrukturen haben alle ihre Eigenheiten. Und eignen sich dadurch besser oder schlechter für den ein oder anderen Einsatzzweck. Es ist gut diese Klasseneigenschaften immer im Hinterkopf zu haben oder man kann hier auf einen Blick nachschauen, wenn dies mal nicht der Fall ist.

Die Interfaces des Collections Framework bilden die Grundlage für die unterschiedlichen Klassen des Collections Framework und geben ihnen so schon viele ihrer Eigenschaften vor. Dabei sind die drei wichtigsten Interfaces: List, Set und Map.

Eigenschaften Tabellarisch

Die KlassenDGSTS
ArrayListJaJaNeinNein
LinkedListJaJaNeinNein
VectorJaJaNeinJa
HashSetNeinNeinNeinNein
LinkedHashSetNeinJaNeinNein
TreeSetNeinJaJaNein
HashMapNeinNeinNeinNein
LinkedHashMapNeinJaNeinNein
HashtableNeinNeinNeinJa
TreeMapNeinJaJaNein
  • D: Doppelte Elemente erlaubt?
  • G: Elemente geordnet?
  • S: Elemente sortiert?
  • TS: Die Datenstruktur ist threadsicher.

Eigenschaften Zusammengefasst

Aus der obigen Tabelle können wir die folgenden Eigenheiten der Datenstrukturen im Java Collection Frameworks und die damit verbunden Eigenschaften der von ihnen implementierten Interfaces schließen:

  • Alle Listen erlauben doppelte Elemente.
    • Die Elemente in den Listen sind mittels Index geordnet.
    • Die Listenelemente sind nicht sortiert.
  • Alle Sets und Maps verhindern doppelten Elemente.
    • Sets und Maps sortieren ihre Elemente nicht. Mit Ausnahme von:
      • TreeSet und TreeMap, die Elemente nach natürlicher Reihenfolge oder nach einem Comparator sortieren.
    • Elemente in Sets und Maps nicht geordnet, außer:
      • LinkedHashSet und LinkedHashMap haben Elemente, die nach der eingefügten Reihenfolge sortiert sind.
      • TreeSet und TreeMap haben Elemente, die nach natürlicher Reihenfolge oder nach einem Komparator geordnet sind.
  • Es gibt nur zwei Sammlungen, die threadsicher sind: Vector und Hastable. Der Rest ist nicht threadsicher.

Auf der ‚Java Documentation‘ Seite findet sich eine vollständige Übersicht über die Interfaces, Klassen und Wrapper des Collections Framework.

Basierend auf dem Artikel Java Collections Framework summary table von Nam Ha Minh.


0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.