Salt la conținutul principal
Modulul 6 · Lecția 1 din 211/14 în curs~15 min
Lecții din modul (1/2)

Setați și Hartă

Dincolo de clasa ArrayList (care reprezintă o listă ordonată de elemente), Java Collections Framework oferă alte două interfețe fundamentale: Set (pentru elemente unice) și Map (pentru asocieri cheie-valoare).

Set: colecții de elemente unice

O Set este o colecție care nu poate conține elemente duplicat. Implementarea sa cea mai comună este HashSet, bazată intern pe un tabel hash, care garantează performanțe excelente pentru operațiunile de inserare, eliminare și verificare a prezenței.

Java
import java.util.HashSet;
import java.util.Set;

Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Alice");
uniqueNames.add("Bob");
uniqueNames.add("Alice"); // This insertion will be ignored since "Alice" is already present

System.out.println(uniqueNames.size()); // Prints 2

Hartă: asociații cheie-valoare

Un Map mapează chei unice la valori. Nu poate conține chei duplicate: fiecare cheie este asociată cu cel mult o valoare. Implementarea sa standard este HashMap.

Java
import java.util.HashMap;
import java.util.Map;

Map<String, Integer> ageMap = new HashMap<>();
// Insert or update key-value pairs
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);

// Retrieve value by key
int aliceAge = ageMap.get("Alice"); // Returns 25

// Verify if a key or value exists
boolean hasBob = ageMap.containsKey("Bob"); // Returns true

Iterarea peste o hartă

Pentru a itera peste perechi cheie-valoare, putem folosi o buclă for-each pe setul de intrări (entrySet()) furnizat de hartă.

Java
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
    System.out.println(entry.getKey() + " is " + entry.getValue() + " years old.");
}

Încercați-l singur

Exercițiu#java.m6.l1.e1
Încercări: 0Se încarcă…

Completați codul declarând un HashSet de șiruri de caractere numite elemente. Adăugați din nou elementele „apple”, „banana” și „apple”, apoi imprimați dimensiunea setului folosind System.out.println.

Se încarcă editorul...
Afișează indiciu

Amintiți-vă că duplicatele nu sunt permise într-un `Set`, iar `items.size()` va returna numărul real de elemente unice inserate.

Soluție disponibilă după 3 încercări

Exercițiu#java.m6.l1.e2
Încercări: 0Se încarcă…

Completați codul declarând un HashMap numit vârste cu chei șiruri și valori întregi. Asociați cheia „Alice” cu 25 și cheia „Bob” cu 30, apoi preluați și imprimați vârsta lui Bob.

Se încarcă editorul...
Afișează indiciu

Utilizați metoda `put` pentru a insera perechi și metoda `get` pentru a prelua valori bazate pe chei.

Soluție disponibilă după 3 încercări

Exercițiu#java.m6.l1.e3
Încercări: 0Se încarcă…

Completați codul verificând dacă harta țărilor conține cheia „FR” și imprimați rezultatul boolean.

Se încarcă editorul...
Afișează indiciu

Utilizați metoda `containsKey` pe obiectul `countries` pentru a verifica prezența cheii necesare.

Soluție disponibilă după 3 încercări