Sobes.tech
Junior

Aké kolekcie existujú v Jave?

sobes.tech AI

Odpoveď od AI

V Jave existujú nasledujúce základné rozhrania kolekcií, ktoré sú súčasťou Java Collections Framework:

  • Collection: Základné rozhranie definujúce všeobecné operácie nad skupinami objektov. Od neho dedí pod-rozhrania:

    • List: Usporiadaná kolekcia (sekvencia). Prvky sa môžu opakovať. Podporuje prístup podľa indexu.
      • ArrayList: Dynamické pole. Dobré pre rýchly prístup podľa indexu a pridávanie na koniec. Pomalé pre vkladanie/odstraňovanie uprostred.
      • LinkedList: Dvojprepojený zoznam. Dobré pre vkladanie/odstraňovanie na začiatku alebo na konci. Pomalé pre prístup podľa indexu.
      • Vector: Synchronizovaná verzia ArrayList. Považuje sa za zastaranú.
      • Stack: Dedí od Vector, implementuje správanie zásobníka (LIFO).
    • Set: Kolekcia obsahujúca iba unikátne prvky. Nezaručuje poradie.
      • HashSet: Implementované pomocou hash tabuľky. Najrýchlejšie pre operácie pridania, odstránenia a kontroly prítomnosti. Nezaručuje poradie.
      • LinkedHashSet: Implementované ako hash tabuľka + prepojený zoznam. Zaručuje poradie vkladania.
      • TreeSet: Implementované pomocou červeno-čierneho stromu. Ukladá prvky v zoradenom poradí. Pomalšie ako HashSet, ale rýchlejšie ako LinkedHashSet pri vyhľadávaní rozsahov.
    • Queue: Kolekcia určená na ukladanie prvkov pred spracovaním (FIFO - prvý vošiel, prvý vyšiel).
      • PriorityQueue: Prvky sú uložené podľa ich prirodzeného poradia alebo komparátora. Vyberá sa prvok s najvyšším priorítom.
      • Deque: (Dvojkoncová fronta) Podporuje vkladanie a odstraňovanie z oboch koncov.
        • ArrayDeque: Implementácia Deque na základe poľa. Efektívnejšia ako LinkedList ako fronta/zásobník.
  • Map: Kolekcia, ktorá ukladá dvojice kľúč-hodnota. Kľúče sú jedinečné.

    • HashMap: Implementované pomocou hash tabuľky. Najrýchlejšie pre operácie pridania, odstránenia a kontroly prítomnosti. Nezaručuje poradie kľúčov.
    • LinkedHashMap: Implementované ako hash tabuľka + prepojený zoznam. Zaručuje poradie vkladania alebo prístupu.
    • TreeMap: Implementované pomocou červeno-čierneho stromu. Ukladá dvojice kľúč-hodnota v zoradenom poradí podľa kľúčov. Pomalšie ako HashMap.
    • HashTable: Synchronizovaná verzia HashMap. Považuje sa za zastaranú.

Existujú aj zastarané triedy, ktoré nie sú súčasťou JCF, ale občas sa používajú:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (rozhranie)