Junior
Welche Implementierungen von Sammlungen gibt es in der Programmiersprache Java?
sobes.tech KI
Antwort von AI
-
Schnittstellen:
Collection: Basisschnittstelle für alle Sammlungen.List: Geordnete Sammlung (mit Indizes).Set: Sammlung ohne Duplikate.SortedSet: Sammlung ohne Duplikate, deren Elemente sortiert sind.Map: Assoziatives Array (Schlüssel-Wert).SortedMap: Nach Schlüsseln sortiertes assoziatives Array.Queue: Sammlung zum Speichern von Elementen vor ihrer Verarbeitung.Deque: Doppelt verkettete Warteschlange.
-
Klassen (Hauptimplementierungen):
-
Für
List:ArrayList: Dynamisches Array. Schneller Zugriff nach Index, langsame Einfüge-/Löschoperationen in der Mitte.LinkedList: Doppelt verkettete Liste. Langsamer Zugriff nach Index, schnelle Einfüge-/Löschoperationen in der Mitte.Vector: Alt, synchronisiert, Äquivalent zuArrayList.Stack: Unterklasse vonVector, implementiert einen Stack (LIFO).
-
Für
Set:HashSet: Implementierung basierend auf Hashtabelle. Garantiert keine Reihenfolge.LinkedHashSet: Basierend auf Hashtabelle und verketteter Liste. Beibehaltung der Einfügereihenfolge.TreeSet: Basierend auf rotem-schwarzem Baum. Elemente sortiert in aufsteigender Reihenfolge.
-
Für
Map:HashMap: Basierend auf Hashtabelle. Garantiert keine Reihenfolge der Schlüssel-Wert-Paare.Hashtable: Alt, synchronisiert, Äquivalent zuHashMap.LinkedHashMap: Basierend auf Hashtabelle und verketteter Liste. Beibehaltung der Einfügereihenfolge.TreeMap: Basierend auf rotem-schwarzem Baum. Schlüssel-Wert-Paare sortiert nach Schlüsseln.
-
Für
Queue:PriorityQueue: Prioritätswarteschlange. Elemente werden in natürlicher Reihenfolge oder nach Comparator extrahiert.ArrayDeque: Implementierung einer doppelseitigen Warteschlange basierend auf Array.
-
-
Hilfsklassen:
Collections: Statische Methoden für die Arbeit mit Sammlungen (Sortieren, Suchen, Synchronisieren usw.).
// Beispiel für ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Beispiel für HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Das Duplikat wird nicht hinzugefügt
System.out.println(numbers.size()); // 2
// Beispiel für HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Beispiel für PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (niedrigste Priorität)