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.
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.
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.
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
System.out.println(entry.getKey() + " ha " + entry.getValue() + " anni.");
}
Prova tu
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.
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
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'.
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
Completa il codice verificando se la mappa countries contiene la chiave 'FR' e stampa il risultato booleano a schermo.
Mostra suggerimento
Usa il metodo `containsKey` sull'oggetto `countries` per verificare la presenza della chiave richiesta.
Soluzione disponibile dopo 3 tentativi