Middle
Beschreiben Sie die Hierarchie der Sammlungen in Java.
sobes.tech KI
Antwort von AI
Die Hierarchie der Sammlungen in Java basiert auf einer Reihe von Schnittstellen, die eine standardisierte Möglichkeit bieten, Objektgruppen darzustellen.
Hauptschnittstellen:
Collection: Die Basisschnittstelle der Hierarchie. Definiert grundlegende Operationen, die auf alle Sammlungen anwendbar sind: Hinzufügen, Entfernen, Überprüfung auf Vorhandensein von Elementen, Bestimmung der Größe.Set: Sammlung ohne Duplikate und ohne festgelegte Reihenfolge der Elemente.List: Geordnete Sammlung mit Zugriff auf Elemente per Index. Kann Duplikate enthalten.Queue: Sammlung zum Speichern von Elementen vor der Verarbeitung. Folgt in der Regel der FIFO-Regel (First-In, First-Out), es gibt jedoch auch andere Implementierungen.Deque: Doppelendige Warteschlange. Unterstützt das Hinzufügen und Entfernen von Elementen an beiden Enden.Map: Sammlung, die Paare "Schlüssel-Wert" speichert. Die Schlüssel müssen eindeutig sein. Erweitert die SchnittstelleCollectionnicht.
Hauptimplementierungsklassen (Beispiele):
| Schnittstelle | Implementierende Klassen (Beispiele) | Beschreibung |
|---|---|---|
Set |
HashSet, LinkedHashSet, TreeSet |
Ohne Duplikate. HashSet - ohne Reihenfolge, LinkedHashSet - bewahrt die Einfügereihenfolge, TreeSet - sortiert. |
List |
ArrayList, LinkedList, Vector |
Geordnet. ArrayList - basiert auf Array, LinkedList - basiert auf verketteter Liste, Vector - synchronisiert (veraltet). |
Queue |
LinkedList, PriorityQueue |
Für die Verarbeitung. LinkedList - FIFO, PriorityQueue - basiert auf Prioritäten. |
Deque |
ArrayDeque, LinkedList |
Doppelendige Warteschlange. ArrayDeque - basiert auf Array, LinkedList - basiert auf verketteter Liste. |
Map |
HashMap, LinkedHashMap, TreeMap, Hashtable |
Schlüssel-Wert. HashMap - ohne garantierte Reihenfolge, LinkedHashMap - bewahrt die Einfügereihenfolge/Zugriffsreihenfolge, TreeMap - sortiert nach Schlüsseln, Hashtable - synchronisiert (veraltet). |
Beispiel für die Verwendung von ArrayList:
// Erstellen einer ArrayList von Strings
List<String> fruits = new ArrayList<>();
// Elemente hinzufügen
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// Zugriff per Index
String firstFruit = fruits.get(0); // Apple
// Größe der Sammlung
int size = fruits.size(); // 3
Beispiel für die Verwendung von HashSet:
// Erstellen eines HashSet von Integer
Set<Integer> numbers = new HashSet<>();
// Elemente hinzufügen (Duplikate werden ignoriert)
numbers.add(1);
numbers.add(2);
numbers.add(2); // Ignoriert
// Größe der Sammlung
int size = numbers.size(); // 2
Beispiel für die Verwendung von HashMap:
// Erstellen einer HashMap: Schlüssel - String, Wert - Integer
Map<String, Integer> ages = new HashMap<>();
// Paare Schlüssel-Wert hinzufügen
ages.put("Alice", 30);
ages.put("Bob", 25);
// Wert anhand des Schlüssels abrufen
int ageAlice = ages.get("Alice"); // 30
// Überprüfen, ob Schlüssel vorhanden ist
boolean hasBob = ages.containsKey("Bob"); // true