Middle
Írja le a Java gyűjtemények hierarchiáját.
sobes.tech MI
Válasz az MI-től
A Java gyűjteményhierarchia egy interfész-készletre épül, amelyek szabványos módon képviselik az objektumcsoportokat.
Fő interfészek:
Collection: a hierarchia gyökérinterfésze. Meghatározza az alapműveleteket, amelyek minden gyűjteményre alkalmazhatók: hozzáadás, törlés, elemek ellenőrzése, méret meghatározása.Set: olyan gyűjtemény, amely nem tartalmaz duplikátumokat és nincs meghatározott sorrendje az elemeknek.List: rendezett gyűjtemény, amelyhez index alapján lehet hozzáférni az elemekhez. Duplikátumokat tartalmazhat.Queue: olyan gyűjtemény, amely az elemek tárolására szolgál feldolgozás előtt. Általában FIFO (First-In, First-Out) szabályt követ, de léteznek más megvalósítások is.Deque: kétszárnyú sor. Támogatja az elemek hozzáadását és törlését mindkét végén.Map: kulcs-érték párokat tároló gyűjtemény. A kulcsoknak egyedinek kell lenniük. Nem bővíti aCollectioninterfészt.
Fő megvalósító osztályok (példák):
| Interfész | Megvalósító osztályok (példák) | Leírás |
|---|---|---|
Set |
HashSet, LinkedHashSet, TreeSet |
Duplikátumokat nem tartalmaz. HashSet - rendezetlen, LinkedHashSet - megőrzi a hozzáadás sorrendjét, TreeSet - rendezett. |
List |
ArrayList, LinkedList, Vector |
Rendezett. ArrayList - tömb alapú, LinkedList - láncolt lista, Vector - szinkronizált (elavult). |
Queue |
LinkedList, PriorityQueue |
Feldolgozásra. LinkedList - FIFO, PriorityQueue - prioritások alapján. |
Deque |
ArrayDeque, LinkedList |
Kétszárnyú sor. ArrayDeque - tömb alapú, LinkedList - láncolt lista. |
Map |
HashMap, LinkedHashMap, TreeMap, Hashtable |
Kulcs-érték párok. HashMap - nem garantálja a sorrendet, LinkedHashMap - megőrzi a hozzáadás/delérés sorrendjét, TreeMap - rendezett kulcs szerint, Hashtable - szinkronizált (elavult). |
Példa az ArrayList használatára:
// ArrayList létrehozása stringekhez
List<String> fruits = new ArrayList<>();
// Elemek hozzáadása
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// Hozzáférés index alapján
String firstFruit = fruits.get(0); // Apple
// Gyűjtemény mérete
int size = fruits.size(); // 3
Példa a HashSet használatára:
// HashSet létrehozása egész számokhoz
Set<Integer> numbers = new HashSet<>();
// Elemek hozzáadása (duplikátumokat figyelmen kívül hagyva)
numbers.add(1);
numbers.add(2);
numbers.add(2); // Figyelmen kívül hagyva
// Gyűjtemény mérete
int size = numbers.size(); // 2
Példa a HashMap használatára:
// HashMap létrehozása: kulcs - String, érték - Integer
Map<String, Integer> ages = new HashMap<>();
// Pár hozzáadása
ages.put("Alice", 30);
ages.put("Bob", 25);
// Érték lekérése kulcs alapján
int aliceAge = ages.get("Alice"); // 30
// Kulcs létezésének ellenőrzése
boolean hasBob = ages.containsKey("Bob"); // igaz