Junior
Milyen gyűjtemény-implementációk léteznek a Java programozási nyelvben?
sobes.tech MI
Válasz az MI-től
-
Interfészek:
Collection: Minden gyűjtemény alapinterfésze.List: Rendezett gyűjtemény (indexekkel).Set: Duplikátumokat nem tartalmazó gyűjtemény.SortedSet: Duplikátumokat nem tartalmazó gyűjtemény, melynek elemei rendezettek.Map: Asszociatív tömb (kulcs-érték).SortedMap: Rendezett asszociatív tömb kulcsok szerint.Queue: Gyűjtemény az elemek tárolására feldolgozás előtt.Deque: Két végű sor.
-
Osztályok (fő megvalósítások):
-
List-hez:ArrayList: Dinamikus tömb. Gyors hozzáférés index szerint, lassú beszúrás/eltávolítás középen.LinkedList: Kétirányú láncolt lista. Lassú index szerinti hozzáférés, gyors beszúrás/eltávolítás középen.Vector: Régi, szinkronizált, azonos azArrayList-tel.Stack: AVectoralosztálya, verem (LIFO) megvalósítása.
-
Set-hez:HashSet: Hash-tábla alapú megvalósítás. Nem garantálja a sorrendet.LinkedHashSet: Hash-tábla és láncolt lista alapú. Megőrzi a beszúrás sorrendjét.TreeSet: Piros-fekete fa alapú. Elemei növekvő sorrendben rendezettek.
-
Map-hez:HashMap: Hash-tábla alapú. Nem garantálja a párok sorrendjét.Hashtable: Régi, szinkronizált, azonos aHashMap-mel.LinkedHashMap: Hash-tábla és láncolt lista alapú. Megőrzi a beszúrás sorrendjét.TreeMap: Piros-fekete fa alapú. Párok kulcs szerint rendezettek.
-
Queue-hez:PriorityQueue: Prioritási sor. Az elemek természetes sorrendben vagy összehasonlító szerint kerülnek kivételre.ArrayDeque: Tömb alapú két végű sor.
-
-
Segédosztályok:
Collections: Statikus metódusok gyűjteményekhez (rendezés, keresés, szinkronizálás stb.).
// ArrayList példája
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet példája
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Duplikátum nem kerül hozzáadásra
System.out.println(numbers.size()); // 2
// HashMap példája
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// PriorityQueue példája
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (legkisebb prioritás)