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.

instagram viewer
// 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)).