Lekcje modułu (1/2)
Set i Map
Oprócz klasy ArrayList (która reprezentuje uporządkowaną listę elementów), Java Collections Framework oferuje dwa inne fundamentalne interfejsy: Set (dla zbiorów unikalnych elementów) i Map (dla asocjacji klucz-wartość).
Set: Zbiory unikalnych elementów
Set (zbiór) to kolekcja, która nie może zawierać duplikatów elementów. Jej najczęstszą implementacją jest HashSet, oparta wewnętrznie na tabeli mieszającej (hash table), co gwarantuje doskonałą wydajność operacji wstawiania, usuwania i sprawdzania obecności.
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: Asocjacje klucz-wartość
Struktura Map (mapa) odwzorowuje unikalne klucze na wartości. Nie może zawierać zduplikowanych kluczy: każdy klucz jest powiązany z maksymalnie jedną wartością. Jej standardową implementacją jest 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
Iterowanie po mapie
Aby iterować po parach klucz-wartość, możemy użyć pętli for-each na zbiorze wpisów (entrySet()) dostarczanym przez mapę.
for (Map.Entry<String, Integer> entry : ageMap.entrySet()) {
System.out.println(entry.getKey() + " ha " + entry.getValue() + " anni.");
}
Spróbuj sam
Uzupełnij kod, deklarując HashSet obiektów String o nazwie items. Dodaj elementy 'apple', 'banana' i ponownie 'apple', a następnie wypisz w konsoli rozmiar zbioru za pomocą System.out.println.
Pokaż wskazówkę
Pamiętaj, że duplikaty nie są dozwolone w `Set`, a `items.size()` zwróci rzeczywistą liczbę wstawionych unikalnych elementów.
Rozwiązanie dostępne po 3 próbach
Uzupełnij kod, deklarując HashMap o nazwie ages z kluczem typu String i wartością typu Integer. Przypisz kluczowi 'Alice' wartość 25, a kluczowi 'Bob' wartość 30, po czym pobierz i wypisz w konsoli wiek 'Bob'.
Pokaż wskazówkę
Użyj metody `put` do wstawienia par oraz metody `get` do pobrania wartości na podstawie kluczy.
Rozwiązanie dostępne po 3 próbach
Uzupełnij kod, sprawdzając, czy mapa countries zawiera klucz 'FR' i wypisz wynik logiczny (boolean) w konsoli.
Pokaż wskazówkę
Użyj metody `containsKey` na obiekcie `countries`, aby sprawdzić obecność wymaganego klucza.
Rozwiązanie dostępne po 3 próbach