Junior
Aké sú implementácie kolekcií v jazyku Java?
sobes.tech AI
Odpoveď od AI
-
Rozhrania:
Collection: Základné rozhranie pre všetky kolekcie.List: Usporiadaná kolekcia (s indexami).Set: Kolekcia bez duplicitných prvkov.SortedSet: Usporiadaná kolekcia bez duplicitných prvkov, prvky sú zoradené.Map: Asociačný poľ (kľúč-hodnota).SortedMap: Zoradená asociačná mapa podľa kľúčov.Queue: Kolekcia na uloženie prvkov pred ich spracovaním.Deque: Obojstranná fronta.
-
Triedy (hlavné implementácie):
-
Pre
List:ArrayList: Dynamické pole. Rýchly prístup podľa indexu, pomalé operácie vkladania/odstraňovania uprostred.LinkedList: Dvojspojový zoznam. Pomalý prístup podľa indexu, rýchle operácie vkladania/odstraňovania uprostred.Vector: Zastaralý synchronizovaný ekvivalentArrayList.Stack: PodtriedaVector, implementujúca zásobník (LIFO).
-
Pre
Set:HashSet: Implementácia založená na hash tabuľke. Nezaručuje poradie prvkov.LinkedHashSet: Implementácia založená na hash tabuľke a prepojenom zozname. Zachováva poradie vkladania.TreeSet: Implementácia založená na červeno-čiernom strome. Prvky sú zoradené vzostupne.
-
Pre
Map:HashMap: Implementácia založená na hash tabuľke. Nezaručuje poradie párov kľúč-hodnota.Hashtable: Zastaralý synchronizovaný ekvivalentHashMap.LinkedHashMap: Implementácia založená na hash tabuľke a prepojenom zozname. Zachováva poradie vkladania.TreeMap: Implementácia založená na červeno-čiernom strome. Pary kľúč-hodnota sú zoradené podľa kľúčov.
-
Pre
Queue:PriorityQueue: Fronta s prioritou. Prvky sa vyberajú podľa ich prirodzeného poradia alebo komparátora.ArrayDeque: Implementácia obojstrannej fronty založená na poli.
-
-
Utility:
Collections: Poskytujú statické metódy na prácu s kolekciami (zoradenie, vyhľadávanie, synchronizácia a pod.).
// Príklad použitia ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Príklad použitia HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Duplicitný nebude pridaný
System.out.println(numbers.size()); // 2
// Príklad použitia HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Príklad použitia PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (najnižší priorita)