Sobes.tech
Junior

Welche Sammlungen gibt es in Java?

sobes.tech KI

Antwort von AI

In Java gibt es die folgenden grundlegenden Schnittstellen für Sammlungen, die im Java Collections Framework enthalten sind:

  • Collection: Basisschnittstelle, die allgemeine Operationen für Gruppen von Objekten definiert. Von ihr erben die Unterinterfaces:

    • List: Geordnete Sammlung (Sequenz). Elemente können sich wiederholen. Unterstützt Zugriff nach Index.
      • ArrayList: Dynamisches Array. Gut für schnellen Zugriff nach Index und Hinzufügen am Ende. Langsam beim Einfügen/Entfernen in der Mitte.
      • LinkedList: Doppelt verkettete Liste. Gut für Einfüge-/Entfergvorgänge am Anfang oder Ende. Langsam beim Zugriff nach Index.
      • Vector: Synchronisierte Version von ArrayList. Wird als veraltet angesehen.
      • Stack: Erbt von Vector, implementiert das Verhalten eines Stacks (LIFO).
    • Set: Sammlung, die nur eindeutige Elemente enthält. Garantiert keine Reihenfolge.
      • HashSet: Implementiert mit Hash-Tabelle. Am schnellsten bei Hinzufügen, Entfernen und Überprüfung der Existenz. Garantiert keine Reihenfolge.
      • LinkedHashSet: Implementiert als Hash-Tabelle + verkettete Liste. Garantiert Einfügereihenfolge.
      • TreeSet: Implementiert mit rotem-schwarzem Baum. Speichert Elemente in sortierter Reihenfolge. Langsamer als HashSet, aber schneller als LinkedHashSet bei Bereichssuchen.
    • Queue: Sammlung, die für die Speicherung von Elementen vor der Verarbeitung entwickelt wurde (FIFO - First-In, First-Out).
      • PriorityQueue: Elemente werden entsprechend ihrer natürlichen Ordnung oder eines Comparators gespeichert. Das Element mit höchster Priorität wird extrahiert.
      • Deque: (Double Ended Queue) Unterstützt Einfügen und Entfernen an beiden Enden.
        • ArrayDeque: Implementierung von Deque basierend auf Array. Effizienter als LinkedList als Queue/Stack.
  • Map: Sammlung, die Schlüssel-Wert-Paare speichert. Schlüssel sind eindeutig.

    • HashMap: Implementiert mit Hash-Tabelle. Am schnellsten bei Hinzufügen, Entfernen und Überprüfung der Existenz. Garantiert keine Reihenfolge der Schlüssel.
    • LinkedHashMap: Implementiert als Hash-Tabelle + verkettete Liste. Garantiert Einfügereihenfolge oder Zugriff.
    • TreeMap: Implementiert mit rotem-schwarzem Baum. Speichert Schlüssel-Wert-Paare in sortierter Reihenfolge nach Schlüsseln. Langsamer als HashMap.
    • HashTable: Synchronisierte Version von HashMap. Wird als veraltet angesehen.

Es gibt auch veraltete Klassen, die nicht zum JCF gehören, aber manchmal vorkommen:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (Schnittstelle)