Krótkie wprowadzenie do TreeMap w Javie z przykładami



W tym artykule znajdziesz szczegółową i wszechstronną wiedzę o TreeMap w Javie wraz z przykładami metod i konstruktorów.

Implementacja interfejsu Map w Javie jest bardzo ważnym zadaniem. W tym celu mamy TreeMap i HashMap . W tym artykule skupimy się na TreeMap w w następującej kolejności:

Co to jest TreeMap w Javie?

TreeMap w Javie służy do implementacji interfejsu Map i NavigableMap wraz z klasą abstrakcyjną. Mapa jest sortowana zgodnie z naturalną kolejnością jej kluczy lub przez komparator dostarczony w czasie tworzenia mapy, w zależności od używanego konstruktora. Okazuje się, że jest to skuteczny sposób sortowania i przechowywania par klucz-wartość.





TreeMap-in-JavaPorządek przechowywania utrzymywany przez mapę drzewa musi być zgodny z równymi, tak jak w przypadku każdej innej posortowanej mapy, niezależnie od jawnych komparatorów. Mapa drzewaimplementacja nie jest zsynchronizowana w tym sensie, że jeśli dostęp do mapy uzyskuje się przez wiele wątków, jednocześnie i co najmniej jeden z wątków modyfikuje strukturę mapy, musi być zsynchronizowany zewnętrznie.

Funkcje TreeMaps

  • Ta klasa jest członkiem środowiska Java Collections Framework.



    podstawowa struktura programu java
  • Klasa implementuje interfejsy Map, w tym NavigableMap, SortedMap i rozszerza AbstractMap

  • TreeMap w Javie nie zezwala na klucze o wartości null (takie jak Map), dlatego generowany jest wyjątek NullPointerException. Jednak wiele wartości null może być skojarzonych z różnymi kluczami.

  • Wszystkie pary Map.Entry zwracane przez metody w tej klasie i jej widoki reprezentują migawki mapowań w momencie ich utworzenia.



  • Nie obsługują metody Entry.setValue.

Ważne punkty do zapamiętania

  1. Oprócz implementacji interfejsu Map, Java TreeMap implementuje również NavigableMap i pośrednio implementuje interfejs SortedMap. TreeMap rozszerza również klasę AbstractMap.

  2. Wpisy TreeMap są sortowane w naturalnej kolejności kluczy. Zapewnia również konstruktora, który zapewnia komparator do użycia podczas zamawiania. Jeśli więc używasz dowolnej klasy jako klucza, upewnij się, że implementuje ona interfejs Comparable w celu naturalnego uporządkowania. Zapoznaj się z pytaniami do wywiadu dotyczącego kolekcji java, aby zrozumieć znaczenie tych metod.

  3. Implementacja Java TreeMap zapewnia gwarantowany koszt czasu logowania (n) dla operacji includeKey, pobieranie, umieszczanie i usuwanie.

  4. TreeMap nie jest zsynchronizowana i dlatego nie jest bezpieczna wątkowo. W przypadku środowisk wielowątkowych można uzyskać opakowaną synchronizację przy użyciu metody Collections.synchronizedSortedMap.

  5. Metody TreeMap do pobierania zestawu kluczy i wartości zwracają Iterator, który jest z natury odporny na awarie, więc każda współbieżna modyfikacja spowoduje zgłoszenie ConcurrentModificationException.

  6. TreeMap w Javie nie zezwala na klucze o wartości null, jednak z różnymi kluczami można powiązać wiele wartości null.

Konstruktorzy w TreeMap

Budowniczy Opis
TreeMap () Konstruuje pustą mapę drzewa, która zostanie posortowana przy użyciu naturalnej kolejności kluczy.
TreeMap (komparator porównawczy) Konstruuje pustą mapę opartą na drzewie, która zostanie posortowana przy użyciu kompozycji komparatora.
TreeMap (Mapa m) Inicjuje mapę drzewa wpisami z m, które zostaną posortowane według naturalnej kolejności kluczy.
TreeMap (SortedMap sm) Inicjuje mapę drzewa wpisami z SortedMap sm, które będą sortowane w tej samej kolejności co sm.

Metody w TreeMap

metoda Opis
void clear () Usuwa wszystkie mapowania z tego TreeMap.
Klon obiektu () Zwraca płytką kopię tej instancji TreeMap.
Komparator porównawczy () Zwraca komparator używany do porządkowania tej mapy lub null, jeśli ta mapa używa naturalnego porządku swoich kluczy.
boolean containsKey (klucz obiektu) Zwraca wartość true, jeśli ta mapa zawiera mapowanie dla określonego klucza.
boolean zawieraValue (wartość obiektu) Zwraca wartość true, jeśli ta mapa mapuje jeden lub więcej kluczy na określoną wartość.
Ustaw entrySet () Zwraca zestaw widoków mapowań zawartych w tej mapie.
Object firstKey () Zwraca pierwszy (najniższy) klucz aktualnie na tej posortowanej mapie.
Object get (klucz obiektu) Zwraca wartość, do której ta mapa mapuje określony klucz.
SortedMap headMap (Object toKey) Zwraca widok części tej mapy, której klucze są mniejsze niż toKey.
Ustaw keySet () Zwraca widok zestawu kluczy zawartych w tej mapie.
Obiekt lastKey () Zwraca ostatni (najwyższy) klucz aktualnie na tej posortowanej mapie.
Umieszczenie obiektu (klucz obiektu, wartość obiektu) Kojarzy określoną wartość z określonym kluczem w tej mapie.
void putAll (Mapa mapy) Kopiuje wszystkie mapowania z określonej mapy do tej mapy.
Usunięcie obiektu (klucz obiektu) Usuwa mapowanie dla tego klucza z tego TreeMap, jeśli jest obecne.
rozmiar int () Zwraca liczbę mapowań klucz-wartość w tej mapie.
SortedMap subMap (Object fromKey, Object toKey) Zwraca widok części tej mapy, której klucze obejmują zakres od odKey włącznie do toKey wyłącznie.
SortedMap tailMap (Object fromKey) Zwraca widok części tej mapy, której klucze są większe lub równe fromKey.
Wartości kolekcji () Zwraca widok kolekcji wartości zawartych w tej mapie.

Przykład TreeMap w Javie

import java.util.TreeMap public class TreeMapMain {public static void main (String args []) {// TreeMap z krajem jako kluczem i kapitałem jako wartością // TreeMap przechowuje elementy w naturalnej kolejności kluczy. TreeMap countryCapitalMap = new TreeMap () countryCapitalMap.put ('Indie', 'Delhi') countryCapitalMap.put ('Japonia', 'Tokio') countryCapitalMap.put ('Francja', 'Paryż') countryCapitalMap.put ('Rosja' , 'Moscow') System.out.println ('-----------------------------') // Iteracja mapy drzewa za pomocą keySet ( ) i dla każdej pętli System.out.println ('Iterating TreeMap Using keySet () and for each loop') for (String countryKey: countryCapitalMap.keySet ()) {System.out.println ('Country:' + countryKey + ' i kapitał: '+ countryCapitalMap.get (countryKey))} System.out.println (' ----------------------------- ' )}}

Wynik:

W ten sposób dochodzimy do końca tego artykułu TreeMap in Java. do heck out the autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego bloga „TreeMap in Java”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.