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?
- Funkcje TreeMaps
- Konstruktorzy w TreeMap
- Metody w TreeMap
- Przykład TreeMap w Javie
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ść.
Porzą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
Oprócz implementacji interfejsu Map, Java TreeMap implementuje również NavigableMap i pośrednio implementuje interfejs SortedMap. TreeMap rozszerza również klasę AbstractMap.
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.
Implementacja Java TreeMap zapewnia gwarantowany koszt czasu logowania (n) dla operacji includeKey, pobieranie, umieszczanie i usuwanie.
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.
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.
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.