Middle
Descrieți ierarhia colecțiilor în Java.
sobes.tech AI
Răspuns de la AI
ierarhia colecțiilor în Java se bazează pe un set de interfețe care oferă o modalitate standard de a reprezenta grupuri de obiecte.
Interfețe principale:
Collection: interfața de bază a ierarhiei. Definește operațiuni de bază aplicabile tuturor colecțiilor: adăugare, ștergere, verificare a existenței elementelor, determinarea dimensiunii.Set: colecție care nu conține duplicate și nu are o ordine definită a elementelor.List: colecție ordonată cu acces la elemente după index. Poate conține duplicate.Queue: colecție destinată stocării elementelor înainte de procesare. De obicei urmează regula FIFO (First-In, First-Out), dar există și alte implementări.Deque: coadă dublu-ended. Suportă adăugarea și eliminarea elementelor din ambele capete.Map: colecție care stochează perechi "cheie-valoare". Cheile trebuie să fie unice. Nu extinde interfațaCollection.
Clase principale care implementează aceste interfețe (exemple):
| Interfață | Clase care o implementează (exemple) | Descriere |
|---|---|---|
Set |
HashSet, LinkedHashSet, TreeSet |
Fără duplicate. HashSet - fără ordine, LinkedHashSet - păstrează ordinea de inserare, TreeSet - sortat. |
List |
ArrayList, LinkedList, Vector |
Ordontată. ArrayList - bazată pe array, LinkedList - bazată pe listă legată, Vector - sincronizată (învechită). |
Queue |
LinkedList, PriorityQueue |
Pentru procesare. LinkedList - FIFO, PriorityQueue - bazată pe priorități. |
Deque |
ArrayDeque, LinkedList |
Coadă dublu-ended. ArrayDeque - bazată pe array, LinkedList - bazată pe listă legată. |
Map |
HashMap, LinkedHashMap, TreeMap, Hashtable |
Cheie-valoare. HashMap - fără ordine garantată, LinkedHashMap - păstrează ordinea de inserare/acces, TreeMap - sortat după chei, Hashtable - sincronizat (învechit). |
Exemplu de utilizare a ArrayList:
// Crearea unui ArrayList de string-uri
List<String> fruits = new ArrayList<>();
// Adăugarea elementelor
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// Accesul după index
String firstFruit = fruits.get(0); // Apple
// Dimensiunea colecției
int size = fruits.size(); // 3
Exemplu de utilizare a HashSet:
// Crearea unui HashSet de întregi
Set<Integer> numbers = new HashSet<>();
// Adăugarea elementelor (duplicate-urile sunt ignorate)
numbers.add(1);
numbers.add(2);
numbers.add(2); // Ignorat
// Dimensiunea colecției
int size = numbers.size(); // 2
Exemplu de utilizare a HashMap:
// Crearea unui HashMap: cheie - String, valoare - Integer
Map<String, Integer> ages = new HashMap<>();
// Adăugarea perechilor cheie-valoare
ages.put("Alice", 30);
ages.put("Bob", 25);
// Obținerea valorii după cheie
int ageAlice = ages.get("Alice"); // 30
// Verificarea dacă o cheie există
boolean hasBob = ages.containsKey("Bob"); // true