Junior
Ce sunt HashMap și Set și în ce cazuri este mai bine să le folosiți?
sobes.tech AI
Răspuns de la AI
HashMap este o colecție care stochează perechi cheie-valoare. Cheile sunt unice, iar valorile pot fi repetate. Utilizează hashing pentru acces rapid (în medie O(1)) la elemente după cheie.
Set este o colecție care stochează elemente unice. Nu garantează ordinea de stocare, cu excepția cazului în care se utilizează o implementare specifică (de exemplu, LinkedHashSet). Operațiile de adăugare, ștergere și verificare a existenței unui element sunt, în general, efectuate în O(1). Există diferite implementări, de exemplu:
HashSet: Nu garantează ordinea elementelor.LinkedHashSet: Păstrează ordinea de adăugare a elementelor.TreeSet: Stochează elementele în ordine sortată.
Când să folosiți:
- HashMap:
- Când aveți nevoie de căutare, inserare sau ștergere eficientă după cheie.
- Pentru stocarea datelor asociative (de exemplu, dicționar).
- Când trebuie verificată rapid existența unei valori după cheie.
- Set:
- Când trebuie să stocați doar elemente unice.
- Pentru verificarea eficientă dacă un element există în colecție.
- Pentru operații pe mulțimi (uniune, intersecție).
Exemplu de utilizare a HashMap:
// Creare HashMap
HashMap<String, Integer> vârste = new HashMap<>();
// Adăugare elemente
vârste.put("Alice", 30);
vârste.put("Bob", 25);
vârste.put("Charlie", 35);
// Obținerea valorii după cheie
int vârstaBobi = vârste.get("Bob"); // vârstaBobi = 25
// Verificarea dacă o cheie există
boolean conțineAlice = vârste.containsKey("Alice"); // conțineAlice = true
Exemplu de utilizare a HashSet:
// Creare HashSet
HashSet<String> nume = new HashSet<>();
// Adăugare elemente
nume.add("Alice");
nume.add("Bob");
nume.add("Charlie");
nume.add("Alice"); // Nu va fi adăugat, deoarece deja există
// Verificare dacă un element există
boolean conțineBob = nume.contains("Bob"); // conțineBob = true
// Iterare peste elemente
for (String numeElement : nume) {
System.out.println(numeElement);
}