Junior
Meséljen a Java gyűjtemények hierarchiájáról.
sobes.tech MI
Válasz az MI-től
A Java gyűjteményhierarchiája két alapvető interfész köré épül: a Collection és a Map. A java.util csomagban van meghatározva.
Collection<E>: A legtöbb gyűjtemény alapinterfésze. Egy elemcsoportot képvisel. Nem garantálja az elemek sorrendjét vagy egyediségét.List<E>: Rendezett gyűjtemény (szekvencia). Az elemeknek meghatározott indexük van. Duplicátumokat tartalmazhat.ArrayList<E>: Tömb alapú implementáció. Gyors véletlenszerű hozzáférés, lassú beszúrás és törlés középen.LinkedList<E>: Láncolt lista alapú implementáció. Lassú véletlenszerű hozzáférés, gyors beszúrás és törlés eleje és vége felé.Vector<E>: Régi, szinkronizált osztály. Hasonló azArrayList-hez, de szálbiztos (és kevésbé hatékony).Stack<E>: Régi osztály, amely aVector-t bővíti, és verem (LIFO) viselkedést valósít meg.
Set<E>: Gyűjtemény, amelyben egyedi elemek vannak.HashSet<E>: Hash-tábla alapú implementáció. Nem rendezett. Gyorsadd,remove,containsműveletek.LinkedHashSet<E>: Megőrzi a beszúrás sorrendjét.SortedSet<E>: Rendezett halmaz.TreeSet<E>: Piros-fekete fa alapú implementáció. Garantálja a rendezett sorrendet.
Queue<E>: Gyűjtemény, amely az elemeket feldolgozás előtt tárolja, gyakran FIFO sorrendben.PriorityQueue<E>: Prioritási sor implementáció. Az elemek prioritás szerint kerülnek kivételre.Deque<E>: (Két végű sor) Kétirányú sor. Támogatja az elemek beszúrását és kivételét mindkét végén.ArrayDeque<E>: Dinamikus tömb alapúDequeimplementáció. Gyorsabb, mint aLinkedListveremként vagy sorként való használatakor.
Map<K, V>: Objektum, amely kulcsokat értékekhez rendel. A kulcsok egyediek, az értékek ismétlődhetnek.HashMap<K, V>: Hash-tábla alapú implementáció. Nem rendezett. Gyorsput,get,removeműveletek.LinkedHashMap<K, V>: Megőrzi a beszúrás vagy hozzáférés sorrendjét.SortedMap<K, V>: Rendezett térkép kulcs szerint.TreeMap<K, V>: Piros-fekete fa alapú implementáció. Garantálja a rendezett sorrendet kulcs szerint.
Hashtable<K, V>: Régi, szinkronizált osztály. Hasonló aHashMap-hez, de szálbiztos (és kevésbé hatékony).
Fő interfészek:
| Interfész | Leírás | Sorrend | Egyediség | Duplikált értékek |
|---|---|---|---|---|
Collection |
Elemcsoport | +/- | +/- | Igen |
List |
Rendezett gyűjtemény | Igen | Nem | Igen |
Set |
Egyedi elemek gyűjteménye | +/- | Igen | Nem |
Queue |
Feldolgozó gyűjtemény (FIFO) | Igen | Nem | Igen |
Deque |
Két végű sor | Igen | Nem | Igen |
Map |
Kulcs-érték párosítás | +/- | Kulcs szerint | Igen |
SortedSet |
Rendezett halmaz | Igen | Igen | Nem |
SortedMap |
Rendezett térkép kulcs szerint | Igen | Kulcs szerint | Igen |
Használati példa:
// ArrayList példa
List<String> nevek = new ArrayList<>();
nevek.add("Alice");
nevek.add("Bob");
System.out.println(nevek.get(0)); // Alice
// HashSet példa
Set<Integer> egyediSzámok = new HashSet<>();
egyediSzámok.add(1);
egyediSzámok.add(2);
egyediSzámok.add(1); // Duplicátum figyelmen kívül hagyva
System.out.println(egyediSzámok.size()); // 2
// HashMap példa
Map<String, Integer> életkorok = new HashMap<>();
életkorok.put("Alice", 30);
életkorok.put("Bob", 25);
System.out.println(életkorok.get("Alice")); // 30