Sobes.tech
Junior

Jakie kolekcje istnieją w Java?

sobes.tech AI

Odpowiedź od AI

Framework kolekcji Java zapewnia wiele kolekcji do przechowywania i zarządzania danymi. Główne interfejsy i ich implementacje:

  • Collection: interfejs bazowy.
    • List: uporządkowana kolekcja, pozwala na duplikaty.
      • ArrayList: oparta na tablicy, szybki dostęp po indeksie, wolne wstawianie/usuwanie w środku.
      • LinkedList: oparta na liście dwukierunkowej, szybkie wstawianie/usuwanie, wolny dostęp po indeksie.
      • Vector: thread-safe odpowiednik ArrayList, przestarzały.
      • Stack: oparty na Vector, zasada LIFO.
    • Set: kolekcja unikalnych elementów, bez określonego porządku (z wyjątkiem SortedSet).
      • HashSet: oparty na tablicy haszującej, szybki dostęp i wstawianie/usuwanie.
      • LinkedHashSet: zachowuje kolejność wstawiania.
      • TreeSet: przechowuje elementy w posortowanej kolejności.
    • Queue: kolekcja elementów, często używana do przechowywania elementów przed przetwarzaniem w kolejności FIFO.
      • PriorityQueue: elementy wyciągane w kolejności ich priorytetu.
      • ArrayDeque: kolejka dwustronna.
    • Deque: kolejka dwustronna, można dodawać i usuwać elementy z obu końców.
  • Map: przechowuje pary klucz-wartość, klucze są unikalne.
    • HashMap: oparty na tablicy haszującej, szybki dostęp po kluczu.
    • LinkedHashMap: zachowuje kolejność wstawiania lub dostępu.
    • TreeMap: przechowuje pary w posortowanej kolejności po kluczach.
    • Hashtable: thread-safe odpowiednik HashMap, przestarzały.

Kolekcje bezpieczne dla wątków:

  • Collections.synchronized*: opakowania na istniejących kolekcjach.
  • Concurrent*: pakiet java.util.concurrent, kolekcje z lepszą wydajnością w środowiskach wielowątkowych.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

I inne mniej popularne kolekcje.