Junior
Jaké jsou implementace kolekcí v jazyce Java?
sobes.tech AI
Odpověď od AI
-
Rozhraní:
Collection: Základní rozhraní pro všechny kolekce.List: Seřazená kolekce (s indexy).Set: Kolekce bez duplicit.SortedSet: Seřazená kolekce bez duplicit, prvky jsou seřazeny.Map: Asociační pole (klíč-hodnota).SortedMap: Seřazené asociační pole podle klíčů.Queue: Kolekce pro uložení prvků před jejich zpracováním.Deque: Oboustranná fronta.
-
Třídy (hlavní implementace):
-
Pro
List:ArrayList: Dynamické pole. Rychlý přístup podle indexu, pomalé operace vkládání/mazání uprostřed.LinkedList: Dvouspojový seznam. Pomalý přístup podle indexu, rychlé operace vkládání/mazání uprostřed.Vector: Zastaralý synchronizovaný ekvivalentArrayList.Stack: PodtřídaVector, implementující zásobník (LIFO).
-
Pro
Set:HashSet: Implementace založená na hash tabulce. Nezaručuje pořadí prvků.LinkedHashSet: Implementace založená na hash tabulce a spojovaném seznamu. Zachovává pořadí vkládání.TreeSet: Implementace založená na červenooranžovém stromu. Prvky jsou seřazeny vzestupně.
-
Pro
Map:HashMap: Implementace založená na hash tabulce. Nezaručuje pořadí párů klíč-hodnota.Hashtable: Zastaralý synchronizovaný ekvivalentHashMap.LinkedHashMap: Implementace založená na hash tabulce a spojovaném seznamu. Zachovává pořadí vkládání párů klíč-hodnota.TreeMap: Implementace založená na červenooranžovém stromu. Pary klíč-hodnota jsou seřazeny podle klíčů.
-
Pro
Queue:PriorityQueue: Fronta s prioritou. Prvky jsou vybírány podle jejich přirozeného řádu nebo komparátoru.ArrayDeque: Implementace oboustranné fronty založené na poli.
-
-
Utility:
Collections: Poskytují statické metody pro práci s kolekcemi (třídění, hledání, synchronizace atd.).
// Příklad použití ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Příklad použití HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Duplicitní nebude přidáno
System.out.println(numbers.size()); // 2
// Příklad použití HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Příklad použití PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (nejnižší priorita)