Sobes.tech
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ý ekvivalent ArrayList.
      • Stack: Podtrieda Vector, 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ý ekvivalent HashMap.
      • 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)