Klasa Java TreeMap przechowuje dane w strukturze drzewa przy użyciu interfejsu mapy. Ta klasa rozszerza klasę AbstractMap i podobnie jak jej klasa nadrzędna, TreeMap ma dwa parametry typu. Jeden z jego parametrów typu reprezentuje klucze w TreeMap, a drugi reprezentuje wartości.
Struktura danych TreeMap przechowuje pary klucz-wartość i umożliwia wykonywanie operacji CRUD na tych danych.
Jak utworzyć mapę drzewa w Javie
Klasa TreeMap ma cztery konstruktory, których można użyć do utworzenia nowego obiektu TreeMap. Domyślny konstruktor jest najpopularniejszym z czterech. Ten konstruktor nie przyjmuje żadnych argumentów i generuje pustą mapę drzewa.
// Utwórz nową mapę drzewa
DrzewoMapa klienci = Nowy DrzewoMapa();
Powyższy kod generuje pustą mapę drzewa o nazwie klienci.
Wypełnianie struktury danych TreeMap
The położyć() Metoda dodaje element do obiektu TreeMap. Wymaga dwóch argumentów — klucza i jego wartości. Możesz dodawać elementy do mapy drzewa w dowolnej kolejności, a struktura danych będzie przechowywać je w porządku rosnącym, zgodnie z ich kluczami.
// Wypełnij mapę drzewa
klienci.umieść(105, "Jessica Jones");
klienci.umieść(102, "Mark Williams");
klienci.umieść(104, „Phila Blaira”);
klienci.umieść(101, „Kim Brown”);
klienci.umieść(103, "Jim Riley");
Powyższy kod dodaje pięciu klientów w losowej kolejności do mapy drzewa klientów.
Przeglądanie elementów w TreeMap
Klasa TreeMap przechowuje swoje dane w obiekcie. Tak więc, aby zobaczyć wszystkie elementy na mapie drzewa, możesz po prostu wydrukować obiekt mapy drzewa w konsoli:
// Wyświetl wszystkie elementy mapy drzewa jako obiekt
System.out.println (klienci);
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
{101=Kim Brown, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Zauważ, że powyższy obiekt wyświetla pozycje w kolejności rosnącej. Możesz również wyświetlić każdy element i odpowiadający mu klucz za pomocą Java dla pętli.
// Wyświetl wszystkie elementy za pomocą iteratora
dla (Wejście klient: klienci.entrySet()) {
System.out.println("Klucz:" + klient.getKey() + "Wartość:" + klient.getValue());
}
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
Klucz: 101 Wartość: Kim Brown
Klucz: 102 Wartość: Mark Williams
Klucz: 103 Wartość: Jim Riley
Klucz: 104 Wartość: Phil Blair
Klucz: 105 Wartość: Jessica Jones
Aktualizowanie elementów w TreeMap
Klasa TreeMap umożliwia aktualizację istniejącego elementu za pomocą zastąpić() metoda. Istnieją dwie metody zamiany. Pierwsza metoda pobiera istniejący klucz i nową wartość, do której chcesz zmapować istniejący klucz.
// Zastąp istniejącą wartość
klienci.zamień(101„Kim Smith”);
System.out.println (klienci);
Powyższy kod wyświetla w konsoli następujący obiekt:
{101=Kim Smith, 102=Mark Williams, 103=Jim Riley, 104=Phil Blair, 105=Jessica Jones}
Jak widzisz Kim Brown jest teraz Kim Smith. Druga metoda replace() pobiera istniejący klucz, bieżącą wartość klucza oraz nową wartość, którą chcesz zmapować na klucz.
// Zastąp istniejącą wartość
klienci.zamień(103"Jim Riley", "Michelle Noah");
System.out.println (klienci);
Powyższy kod wyświetla w konsoli następujący obiekt:
{101=Kim Brown, 102=Mark Williams, 103=Michelle Noah, 104=Phil Blair, 105=Jessica Jones}
W powyższym obiekcie Michelle Noah zastępuje Jim Riley.
Usuwanie elementów z TreeMap
Jeśli chcesz usunąć pojedynczy element z mapy drzewa, usunąć() metoda jest twoją jedyną opcją. Pobiera klucz powiązany z elementem, który chcesz usunąć, i zwraca usuniętą wartość.
// Usuń przedmiot
klienci.usuń(104);
System.out.println (klienci);
Uruchomienie powyższego kodu powoduje wyświetlenie na konsoli następującego obiektu:
{101=Kim Smith, 102=Mark Williams, 103=Michelle Noah, 105=Jessica Jones}
Ten Klasa Java ma również jasne() metoda, która pozwala usunąć wszystkie elementy z mapy drzewa.
Mapa drzewa a klasa Java HashMap
TreeMap i HashMap to dwie z bardziej popularnych klas map Java. Obydwa rozszerzają klasę AbstractMap. Ta relacja daje klasom TreeMap i HashMap dostęp do wielu takich samych funkcji.
Istnieją jednak pewne godne uwagi różnice między tymi dwiema klasami map. TreeMap używa implementacji drzewa czerwono-czarnego interfejsu Map, podczas gdy HashMap używa tabeli mieszania. HashMap umożliwia przechowywanie pojedynczego klucza null, podczas gdy TreeMap nie. Wreszcie, HashMap jest szybszy niż TreeMap. Szybkość algorytmiczna pierwszego wynosi O(1), a drugiego wynosi O(log (n)).