Junior
Opowiedz o kolekcji Map w Java i jej cechach.
sobes.tech AI
Odpowiedź od AI
Map — to interfejs w Java Collection Framework, reprezentujący kolekcję par "klucz-wartość". Klucze są unikalne, a wartości mogą się powtarzać.
Główne cechy:
- Klucz służy do dostępu do odpowiadającej mu wartości.
- Ten sam klucz nie może być dodany dwukrotnie. Przy próbie dodania istniejącego klucza, stare wartość zostaje zastąpiona nową.
Mapnie dziedziczy po interfejsieCollection. Ma własne metody do pracy z parami "klucz-wartość".- Kolejność par "klucz-wartość" może się różnić w zależności od konkretnej implementacji.
Popularne implementacje Map:
HashMap: Nie gwarantuje kolejności elementów. Zapewnia wysoką wydajność dla większości operacji (wstawianie, pobieranie, usuwanie) przy braku konfliktów hash.LinkedHashMap: Przechowuje elementy w kolejności ich dodania (lub w kolejności dostępu, jeśli jest odpowiednio skonfigurowany).TreeMap: Przechowuje elementy w posortowanej kolejności według klucza (kolejność naturalna lub dostarczona przez komparator). Zapewnia czas logarytmiczny dla większości operacji.
Przykłady metod:
// Pobierz wartość po kluczu
Object value = map.get(key);
// Dodaj lub zaktualizuj parę klucz-wartość
Object oldValue = map.put(key, value);
// Usuń parę po kluczu
Object removedValue = map.remove(key);
// Sprawdź, czy klucz istnieje
boolean containsKey = map.containsKey(key);
// Sprawdź, czy wartość istnieje
boolean containsValue = map.containsValue(value);
// Pobierz zbiór wszystkich kluczy
Set<KeyType> keys = map.keySet();
// Pobierz zbiór wszystkich wartości
Collection<ValueType> values = map.values();
// Pobierz zbiór wszystkich wpisów (par klucz-wartość)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();
// Pobierz rozmiar Mapy
int size = map.size();
Użycie Map.Entry podczas iteracji:
// Iteracja po zbiorze Entry
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
KeyType key = entry.getKey();
ValueType value = entry.getValue();
// ...
}