Różnica między HashMap i TreeMap w Javie

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 14 Móc 2024
Anonim
Różnica między HashMap i TreeMap w Javie - Technologia
Różnica między HashMap i TreeMap w Javie - Technologia

Zawartość


HashMap i TreeMap to klasy Map i obie implementują interfejs Map. Mapa to obiekt przechowujący pary klucz-wartość, w którym każdy klucz jest unikalny, ale wartości mogą być zduplikowane. Klasa HashMap używa tabeli skrótów jako struktury danych. TreeMap używa czerwono-czarnego drzewa jako struktury danych. Główną różnicą między HashMap i Treemap jest to, że HashMap nie zachowuje kolejności wstawiania, podczas gdy Mapa robi.

Rozpocznijmy więc dyskusję na temat różnic między HashMap a TreeMap za pomocą tabeli porównawczej pokazanej poniżej.

  1. Wykres porównania
  2. Definicja
  3. Kluczowe różnice
  4. Wniosek

Wykres porównania

Podstawa do porównaniaHashMapTreeMap
Podstawowy HashMap nie utrzymuje kolejności wstawiania.TreeMap utrzymuje kolejność wstawiania.
Struktura danychHashMap używa tabeli skrótów jako podstawowej struktury danych.TreeMap używa Czerwono-Czarnego drzewa jako podstawowej struktury danych.
Null Keys and Values HashMap zezwala na klucz Null, gdy reklama Null ma wartość dowolną liczbę razy.TreeMap nie zezwala na klucz zerowy, ale zezwala na wartości zerowe dowolną liczbę razy.
Rozszerza i wdrażaHashMap rozszerza klasę AbstractMap i implementuje interfejs Map.TreeMap rozszerza klasę AbstractMap i implementuje interfejs SortedMap i NavigableMap.
WystępHashMap działa szybciej.TreeMap w porównaniu do HashMap działa wolniej.


Definicja HashMap

HashMap jest klasą mapy. Wykorzystuje tabela mieszania, jako struktura danych do przechowywania pary klucz-wartość mapy. Wstawianie pary klucz-wartość odbywa się za pomocą kod skrótu z klawiatura. Dlatego każdy klucz na mapie musi być unikalny, ponieważ będzie używany do pobierania wartości.

Kolejność wstawiania w HashMap to nie zachowane, co oznacza, że ​​obiekt hashmap nie zwraca elementów w kolejności, w której zostały wstawione. Z drugiej strony kolejność zwrotu elementów nie jest ustalona.

The klawisz jest dozwolone ZERO od razu, ale wartości może być ZERO w dowolnym czasie. HashMap może zawierać heterogeniczny obiekty dla kluczy oraz wartości.

Istnieją cztery konstruktory HashMap:

HashMap () HashMap (mapa m) HashMap (int pojemność), HashMap (int pojemność, float fillRatio)

The pierwszy Konstruktor tworzy pusty obiekt HashMap. The druga Konstruktor inicjuje HashMap za pomocą elementów Map m. The trzeci Konstruktor inicjuje HashMap z pojemnością podaną w argumencie. The czwarty Konstruktor inicjuje pojemność, a także współczynnik wypełnienia obiektu HashMap.


Domyślny Pojemność HashMap jest 16i domyślne współczynnik wypełnienia HashMap jest 0.75.

Definicja TreeMap

Podobnie jak HashMap, TreeMap jest także klasą Map. TreeMap się rozszerza AbstractMap klasa i narzędzia NavigabelMap i SortedMap. Obiekty TreeMap przechowują elementy mapy w strukturze drzewa. Struktura danych używana do przechowywania mapy to Czerwono-czarne drzewo.

TreeMap przechowuje parę wartości klucza w posortowanej kolejności, co pomaga w szybkim pobieraniu elementów. Obiekt TreeMap zwraca elementy w pliku posortowane (rosnąco) zamówienie.

Istnieją cztery konstruktory TreeMap:

TreeMap () TreeMap (komparator <? Super K> comp) TreeMap (Mapa <? Rozszerza K,? Rozszerza V> m) TreeMap (SortedMap sm)

The pierwszy konstruktory tworzą pusty obiekt TreeMap, który byłby sortowany w naturalnej kolejności jego kluczy. The druga konstruktor utworzy pustą mapę drzewa, która zostanie posortowana według Komparator cmp. The trzeci powyższy konstruktor utworzy mapę drzewa, która zostanie zainicjowana przy użyciu wpisów Mapa m. The czwarty konstruktor utworzy mapę drzewa, która zostanie zainicjowana przy użyciu wpisów SortedMap sm.

Treemap nie ma własnej nowej metody, wykorzystuje metodę interfejsu NavigableMap i SortedMap oraz klasę AbstractMap.

  1. Obie klasy są używane do tworzenia obiektów mapy, ale podstawową różnicą między HashMap i Treemap jest to, że HashMap nie utrzymuje kolejności wstawiania, podczas gdy Treemap.
  2. Struktura danych używana przez Hashmap do przechowywania elementów mapy to tablica skrótów, a struktura danych używana przez TreeMap do przechowywania elementów mapy to czerwono-czarne drzewo.
  3. Zarówno klasy Hashmap, jak i Treemap rozszerzają klasę AbstractMap, ale klasa HashMap implementuje interfejs Map, a TreeMap implementuje interfejs NavigableMap i SortedMap.
  4. Wartości mogą być zerowe w dowolnym czasie w obu przypadkach, ale klucz może mieć wartość Null tylko raz w HashMap, a klucz nigdy nie może znajdować się w Treemap.
  5. Wydajność HashMap jest szybsza, nie marnuje czasu na sortowanie elementów mapy, podobnie jak TreeMap. Dlatego TreeMap działa wolniej niż HashMap.

Wniosek:

TreeMap powinien być używany tylko wtedy, gdy potrzebujesz pary klucz-wartość w posortowanej formie. Ponieważ sortowanie obejmuje koszt wydajności. Zsynchronizowany HashMap działa szybciej.