Sobes.tech
Junior

Milyen gyűjtemények léteznek Java-ban?

sobes.tech MI

Válasz az MI-től

A Java Collections Framework számos gyűjteményt kínál az adatok tárolására és kezelésére. A fő interfészek és azok megvalósításai:

  • Collection: alapinterfész.
    • List: rendezett gyűjtemény, duplikátumokat megenged.
      • ArrayList: tömbön alapul, gyors hozzáférés index szerint, lassú beszúrás/eltávolítás középen.
      • LinkedList: kétszárú láncolt lista, gyors beszúrás/eltávolítás, lassú index szerinti hozzáférés.
      • Vector: a ArrayList szálbiztos változata, elavult.
      • Stack: a Vector-on alapul, LIFO elv.
    • Set: egyedi elemek gyűjteménye, nem meghatározott sorrendben (kivéve SortedSet).
      • HashSet: hash-táblán alapul, gyors hozzáférés és beszúrás/eltávolítás.
      • LinkedHashSet: megőrzi a beszúrás sorrendjét.
      • TreeSet: elemeket rendezett sorrendben tárol.
    • Queue: elemek gyűjteménye, gyakran használják az elemek tárolására feldolgozás előtt FIFO sorrendben.
      • PriorityQueue: elemek prioritás szerint kerülnek kivételre.
      • ArrayDeque: dupla végű sor.
    • Deque: dupla végű sor, elemeket mindkét végén lehet hozzáadni és eltávolítani.
  • Map: kulcs-érték párokat tárol, a kulcsok egyediek.
    • HashMap: hash-táblán alapul, gyors hozzáférés kulcs szerint.
    • LinkedHashMap: megőrzi a beszúrás vagy hozzáférés sorrendjét.
    • TreeMap: párokat rendezett sorrendben tárol kulcs szerint.
    • Hashtable: a HashMap szálbiztos változata, elavult.

Szálbiztos gyűjtemények:

  • Collections.synchronized*: meglévő gyűjtemények köré csomagolva.
  • Concurrent*: a java.util.concurrent csomagban, gyűjtemények jobb teljesítménnyel több szálas környezetben.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

És más kevésbé elterjedt gyűjtemények.