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 azArrayList-nek. Régebbinek számít.Stack: AVector-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 aHashSet, de gyorsabb tartománykereséseknél, mint aLinkedHashSet.
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 aLinkedListsor 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 aHashMap.HashTable: Szinkronizált változata aHashMap-nek. Régebbinek számít.
Vannak régi osztályok is, amelyek nem részei a JCF-nek, de néha előfordulnak:
VectorStackHashtableEnumeration(interfész)