Sobes.tech
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ța Collection.

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