Junior
Care sunt implementările colecțiilor în limbajul de programare Java?
sobes.tech AI
Răspuns de la AI
-
Interfețe:
Collection: Interfața de bază pentru toate colecțiile.List: Colecție ordonată (cu indici).Set: Colecție fără duplicate.SortedSet: Colecție fără duplicate, ale cărei elemente sunt sortate.Map: Matrice asociativă (cheie-valoare).SortedMap: Matrice asociativă sortată după chei.Queue: Colecție pentru stocarea elementelor înainte de procesare.Deque: Coada dublu-încuietată.
-
Clase (implementări principale):
-
Pentru
List:ArrayList: Array dinamic. Acces rapid după index, operații lente de inserare/ștergere în mijloc.LinkedList: Listă dublu înlănțuită. Acces lent după index, operații rapide de inserare/ștergere în mijloc.Vector: Învechit, sincronizat, echivalent cuArrayList.Stack: Subclasă aVector, care implementează un stivă (LIFO).
-
Pentru
Set:HashSet: Implementare bazată pe tabel hash. Nu garantează ordinea.LinkedHashSet: Bazat pe tabel hash și listă legată. Menține ordinea de inserție.TreeSet: Bazat pe arbore roșu-negru. Elementele sunt sortate în ordine crescătoare.
-
Pentru
Map:HashMap: Bazat pe tabel hash. Nu garantează ordinea perechilor cheie-valoare.Hashtable: Învechit, sincronizat, echivalent cuHashMap.LinkedHashMap: Bazat pe tabel hash și listă legată. Menține ordinea de inserție.TreeMap: Bazat pe arbore roșu-negru. Perechile sunt sortate după chei.
-
Pentru
Queue:PriorityQueue: Coadă de prioritate. Elementele sunt extrase în ordinea naturală sau după comparator.ArrayDeque: Implementare a cozii dublu-încuietate bazată pe array.
-
-
Utilitare:
Collections: Metode statice pentru lucrul cu colecții (sortare, căutare, sincronizare etc.).
// Exemplu de utilizare ArrayList
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// Exemplu de utilizare HashSet
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Dublura nu va fi adăugată
System.out.println(numbers.size()); // 2
// Exemplu de utilizare HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// Exemplu de utilizare PriorityQueue
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (cea mai mică prioritate)