Junior
Erzählen Sie von der Hierarchie der Sammlungen in Java.
sobes.tech KI
Antwort von AI
Die Hierarchie der Sammlungen in Java basiert auf zwei Grundschnittstellen: Collection und Map. Sie ist im Paket java.util definiert.
Collection<E>: Grundschnittstelle für die meisten Sammlungen. Repräsentiert eine Gruppe von Elementen. Garantiert keine Reihenfolge oder Einzigartigkeit der Elemente.List<E>: Geordnete Sammlung (Sequenz). Elemente haben einen definierten Index. Doppelte Elemente sind erlaubt.ArrayList<E>: Array-basierte Implementierung. Schneller zufälliger Zugriff, langsame Einfügungen/Entfernungen in der Mitte.LinkedList<E>: Verkettete Listen-Implementierung. Langsamer zufälliger Zugriff, schnelle Einfügungen/Entfernungen am Anfang/Ende.Vector<E>: Veraltete synchronisierte Klasse. Ähnlich wieArrayList, aber thread-sicher (weniger performant).Stack<E>: Veraltete Klasse, dieVectorerweitert und das Stack-Verhalten (LIFO) implementiert.
Set<E>: Sammlung, die nur eindeutige Elemente enthält.HashSet<E>: Hash-Tabellen-basierte Implementierung. Nicht sortiert. Schnelle Operationenadd,remove,contains.LinkedHashSet<E>: Bewahrt die Einfügereihenfolge.SortedSet<E>: Sortierte Menge in aufsteigender Reihenfolge.TreeSet<E>: Implementierung basierend auf einem Rot-Schwarz-Baum. Garantiert sortierte Reihenfolge.
Queue<E>: Sammlung zum Zwischenspeichern von Elementen vor der Verarbeitung, oft in FIFO-Reihenfolge (First-In, First-Out).PriorityQueue<E>: Prioritätswarteschlange. Elemente werden entsprechend ihrer Priorität extrahiert.Deque<E>: (Doppelt endende Warteschlange) Bidirektionale Queue. Unterstützt Einfügungen und Entnahmen an beiden Enden.ArrayDeque<E>: Array-basierte Implementierung vonDeque. Schneller alsLinkedListfür Stack- oder Queue-Verwendung.
Map<K, V>: Objekt, das Schlüssel auf Werte abbildet. Schlüssel sind eindeutig, Werte können wiederholt werden.HashMap<K, V>: Hash-Tabellen-basierte Implementierung. Nicht sortiert. Schnelle Operationenput,get,remove.LinkedHashMap<K, V>: Bewahrt die Einfügereihenfolge oder Zugriffshistorie.SortedMap<K, V>: Nach Schlüsseln sortierte Karte.TreeMap<K, V>: Implementierung basierend auf einem Rot-Schwarz-Baum. Garantiert sortierte Reihenfolge nach Schlüsseln.
Hashtable<K, V>: Veraltete synchronisierte Klasse. Ähnlich wieHashMap, aber thread-sicher (weniger performant).
Hauptschnittstellen:
| Schnittstelle | Beschreibung | Reihenfolge | Einzigartigkeit | Doppelte Werte |
|---|---|---|---|---|
Collection |
Gruppe von Elementen | +/- | +/- | Ja |
List |
Geordnete Sammlung | Ja | Nein | Ja |
Set |
Sammlung eindeutiger Elemente | +/- | Ja | Nein |
Queue |
Sammlung für Verarbeitung (FIFO) | Ja | Nein | Ja |
Deque |
Doppelt endende Warteschlange | Ja | Nein | Ja |
Map |
Schlüssel-Wert-Karte | +/- | Nach Schlüssel | Ja |
SortedSet |
Sortierte Menge | Ja | Ja | Nein |
SortedMap |
Nach Schlüsseln sortierte Karte | Ja | Nach Schlüssel | Ja |
Beispiel für die Verwendung:
// 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> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(2);
uniqueNumbers.add(1); // Doppelt wird ignoriert
System.out.println(uniqueNumbers.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