Vai al contenuto
eLearner.app
Modulo 6 · Lezione 1 di 211/14 nel corso~15 min
Lezioni del modulo (1/2)

Set e Map

Oltre alla classe ArrayList (che rappresenta una lista ordinata di elementi), il Java Collections Framework offre altre due interfacce fondamentali: Set (per insiemi di elementi unici) e Map (per associazioni chiave-valore).

Set: Insiemi di Elementi Unici

Un Set è una collezione che non può contenere elementi duplicati. La sua implementazione più comune è HashSet, basata internamente su una tabella hash, che garantisce prestazioni eccellenti per le operazioni di inserimento, rimozione e verifica di presenza.

Code
import java.util.HashSet;
import java.util.Set;

Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Alice");
uniqueNames.add("Bob");
uniqueNames.add("Alice"); // Questo inserimento verrà ignorato poiché "Alice" è già presente

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

Map: Associazioni Chiave-Valore

Una Map mappa delle chiavi univoche a dei valori. Non può contenere chiavi duplicate: ogni chiave è associata al massimo a un valore. La sua implementazione standard è HashMap.

Code
import java.util.HashMap;
import java.util.Map;

Map<String, Integer> ageMap = new HashMap<>();
// Inserimento o aggiornamento di coppie
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);

// Recupero del valore tramite la chiave
int aliceAge = ageMap.get("Alice"); // Ritorna 25

// Verifica della presenza di una chiave o valore
boolean hasBob = ageMap.containsKey("Bob"); // Ritorna true

Iterare su una Map

Per iterare sulle coppie chiave-valore, possiamo utilizzare il ciclo for-each sul set di voci (entrySet()) fornito dalla mappa.

Code
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
    System.out.println(entry.getKey() + " ha " + entry.getValue() + " anni.");
}

Prova tu

Esercizio#java.m6.l1.e1
Tentativi: 0Caricamento…

Completa il codice dichiarando un HashSet di stringhe chiamato items. Aggiungi gli elementi 'apple', 'banana' e ancora 'apple', dopodiché stampa a schermo la dimensione del set tramite System.out.println.

Caricamento editor…
Mostra suggerimento

Ricorda che i duplicati non sono ammessi in un `Set` ed `items.size()` restituirà il numero effettivo di elementi unici inseriti.

Soluzione disponibile dopo 3 tentativi

Esercizio#java.m6.l1.e2
Tentativi: 0Caricamento…

Completa il codice dichiarando una HashMap denominata ages con chiave String e valore Integer. Associa la chiave 'Alice' a 25 e la chiave 'Bob' a 30, dopodiché recupera e stampa a schermo l'età di 'Bob'.

Caricamento editor…
Mostra suggerimento

Usa il metodo `put` per inserire coppie e il metodo `get` per estrarre valori in base alle chiavi.

Soluzione disponibile dopo 3 tentativi

Esercizio#java.m6.l1.e3
Tentativi: 0Caricamento…

Completa il codice verificando se la mappa countries contiene la chiave 'FR' e stampa il risultato booleano a schermo.

Caricamento editor…
Mostra suggerimento

Usa il metodo `containsKey` sull'oggetto `countries` per verificare la presenza della chiave richiesta.

Soluzione disponibile dopo 3 tentativi