Sobes.tech
Junior

Jaké kolekce existují v Javě?

sobes.tech AI

Odpověď od AI

Framework kolekcí Java poskytuje mnoho kolekcí pro ukládání a správu dat. Hlavní rozhraní a jejich implementace:

  • Collection: základní rozhraní.
    • List: seřazená kolekce, umožňuje duplicitní prvky.
      • ArrayList: založené na poli, rychlý přístup podle indexu, pomalá vkládání/mazání uprostřed.
      • LinkedList: založené na dvojitě vázaném seznamu, rychlé vkládání/mazání, pomalý přístup podle indexu.
      • Vector: vlákna bezpečná verze ArrayList, zastaralá.
      • Stack: založené na Vector, princip LIFO.
    • Set: kolekce unikátních prvků, bez určitého pořadí (kromě SortedSet).
      • HashSet: založené na hash tabulce, rychlý přístup a vkládání/mazání.
      • LinkedHashSet: zachovává pořadí vložení.
      • TreeSet: ukládá prvky v seřazeném pořadí.
    • Queue: kolekce prvků, často používaná pro ukládání před zpracováním ve FIFO pořadí.
      • PriorityQueue: prvky jsou vybírány podle priority.
      • ArrayDeque: obousměrná fronta.
    • Deque: obousměrná fronta, prvky lze přidávat a odstraňovat z obou konců.
  • Map: ukládá páry klíč-hodnota, klíče jsou unikátní.
    • HashMap: založené na hash tabulce, rychlý přístup podle klíče.
    • LinkedHashMap: zachovává pořadí vložení nebo přístupu.
    • TreeMap: ukládá páry v seřazeném pořadí podle klíčů.
    • Hashtable: vlákna bezpečná verze HashMap, zastaralá.

Vlákna bezpečné kolekce:

  • Collections.synchronized*: obalí existující kolekce.
  • Concurrent*: balíček java.util.concurrent, kolekce s lepším výkonem v konkurenčním prostředí.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

A další méně rozšířené kolekce.