Sobes.tech
Junior

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

sobes.tech MI

Válasz az MI-től

Java-ban a következő fő kollekciós interfészek találhatók, amelyek részei a Java Collections Framework-nek:

  • Collection: Alap interfész, amely általános műveleteket határoz meg objektumcsoportokon. Róla öröklődnek az al-interfészek:

    • List: Rendezett kollekció (szekvencia). Az elemek ismétlődhetnek. Támogatja az index szerinti hozzáférést.
      • ArrayList: Dinamikus tömb. Jó gyors index szerinti hozzáféréshez és a végéhez való hozzáadáshoz. Lassú beszúrás/eltávolítás középen.
      • LinkedList: Kétszálú láncolt lista. Jó beszúrás/eltávolítás elején vagy végén. Lassú index szerinti hozzáférés.
      • Vector: Szinkronizált változata az ArrayList-nek. Régebbinek számít.
      • Stack: A Vector-ből öröklődik, és a verem (LIFO) viselkedést valósítja meg.
    • Set: Olyan kollekció, amely csak egyedi elemeket tartalmaz. Nem garantál sorrendet.
      • HashSet: Hash-táblával implementálva. A leggyorsabb hozzáadás, törlés és létezés ellenőrzés esetén. Nem garantál sorrendet.
      • LinkedHashSet: Hash-tábla + láncolt lista. Garantálja a beszúrás sorrendjét.
      • TreeSet: Piros-fekete fával implementálva. Rendezett sorrendben tárolja az elemeket. Lassabb, mint a HashSet, de gyorsabb tartománykereséseknél, mint a LinkedHashSet.
    • Queue: Olyan kollekció, amely az elemeket feldolgozás előtt tárolja (FIFO - First-In, First-Out).
      • PriorityQueue: Az elemek természetes sorrendjük vagy összehasonlító szerint vannak tárolva. A legmagasabb prioritású elem kerül kivételre.
      • Deque: (Double Ended Queue) Mindkét végén lehet beszúrni és törölni.
        • ArrayDeque: Array-alapú Deque implementáció. Hatékonyabb, mint a LinkedList sor vagy veremként.
  • Map: Olyan kollekció, amely kulcs-érték párokat tárol. A kulcsok egyediek.

    • HashMap: Hash-táblával implementálva. A leggyorsabb hozzáadás, törlés és létezés ellenőrzés esetén. Nem garantálja a kulcsok sorrendjét.
    • LinkedHashMap: Hash-tábla + láncolt lista. Garantálja a beszúrás vagy hozzáférés sorrendjét.
    • TreeMap: Piros-fekete fával implementálva. A kulcsok szerint rendezett kulcs-érték párokat tárol. Lassabb, mint a HashMap.
    • HashTable: Szinkronizált változata a HashMap-nek. Régebbinek számít.

Vannak régi osztályok is, amelyek nem részei a JCF-nek, de néha előfordulnak:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (interfész)