Różnica między HashMap i TreeMap w Javie
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.
- Wykres porównania
- Definicja
- Kluczowe różnice
- Wniosek
Wykres porównania
Podstawa do porównania | HashMap | TreeMap |
---|---|---|
Podstawowy | HashMap nie utrzymuje kolejności wstawiania. | TreeMap utrzymuje kolejność wstawiania. |
Struktura danych | HashMap 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ża | HashMap rozszerza klasę AbstractMap i implementuje interfejs Map. | TreeMap rozszerza klasę AbstractMap i implementuje interfejs SortedMap i NavigableMap. |
Występ | HashMap 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 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. 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.
Wniosek: