Jednym z najciekawszych tematów w Javie jest interfejs Map, któryreprezentuje mapowanie między kluczem a wartością.Często jest błędnie rozumiany jako podtyp interfejs w Javie.Ten artykuł na temat Java Map Interface pomoże Ci zrozumieć i opanować działanie mapy w programie .
Poniżej wymienione są tematy poruszone w tym artykule:
- Interfejs mapy Java
- Charakterystyka interfejsu mapy
- Hierarchia map Java
- Metody w Java Map Interface
- Implementacje interfejsu mapy
Interfejs mapy Java
Mapa w Javie to plik obiekt odwzorowuje klucze na wartości i jest przeznaczony do szybszego wyszukiwania. Dane są przechowywane w parach klucz-wartość, a każdy klucz jest unikalny. Każdy klucz jest mapowany na wartość, stąd mapa nazw. Te pary klucz-wartość nazywane są pozycjami mapy.
w , java.util.Map jest obejmuje sygnatury metod do wstawiania, usuwania i pobierania elementów na podstawie klucza. Dzięki takim metodom jest to doskonałe narzędzie do mapowania skojarzeń klucz-wartość, na przykład słowniki.
Charakterystyka interfejsu mapy
- Interfejs Map nie jest prawdziwym podtypem interfejsu Collection, dlategojego cechy i zachowanie różnią się od pozostałych typów kolekcji.
- To zapewniatrzy widoki kolekcji - zestaw kluczy, zestaw odwzorowań klucz-wartość i zbiór wartości.
- DOMapanie może zawierać zduplikowanych kluczy, a każdy klucz może odpowiadać co najwyżej jednej wartości. Niektóre implementacje zezwalają na klucz null i wartość null ( HashMap i LinkedHashMap ) ale niektórzy nie ( TreeMap).
- Interfejs Map nie gwarantuje kolejności mapowań, jednak zależy to od implementacji. Na przykład, HashMap nie gwarantuje kolejności odwzorowań, ale TreeMap robi.
- Klasa AbstractMap zapewnia szkieletową implementację interfejsu Java Map i większość elementów Map Concrete zajęcia rozszerzyć klasę AbstractMap i zaimplementować wymagane metody.
Teraz, gdy masz pojęcie, w jakim interfejsie Map jest, przejdźmy dalej i sprawdźmy hierarchię Java Map.
Hierarchia map Java
Istnieją dwa interfejsy, które implementują Map w java: Map i SortedMap. Popularne klasy implementacji Map w Javie to HashMap, TreeMap , i LinkedHashMap. Hierarchia mapy Java jest podana poniżej:
Zanim zapoznamy się z trzema klasami implementacji interfejsu Java Map Interface, o których mowa powyżej, oto kilka typowych metod, z którymi można się spotkać podczas pracy z Map.
Metody w Java Map Interface
Metody jak tworzyć dynamiczne strony internetowe | Opis |
public put (klucz obiektu, wartość obiektu) | Ta metoda wstawia wpis do mapy |
publicznyvoid putAll (Mapa mapy) | Ta metoda wstawia określoną mapę w tej mapie |
public Object remove (klucz obiektu) | Służy do usuwania wpisu dla określonego klucza |
public Set keySet () | Zwraca widok Set zawierający wszystkie klucze |
public Set entrySet () | Zwraca widok Zestaw zawierający wszystkie klucze i wartości |
void clear () | Służy do resetowania mapy |
public void putIfAbsent (klucz K, wartość V) | Wstawia określoną wartość z określonym kluczem w mapie tylko wtedy, gdy nie jest jeszcze określona |
public Object get (klucz obiektu) | Zwraca wartość dla określonego klucza |
public boolean containsKey (klucz obiektu) | Służy do wyszukiwania określonego klucza z tej mapy |
Implementacje Map
Istnieje kilka które implementują mapę Javaale trzy główne i ogólne implementacje sąHashMap, TreeMap i LinkedHashMap.Zobaczmy na przykładzie charakterystykę i zachowanie każdej implementacji
Klasa HashMap
Najpopularniejszą klasą implementującą interfejs Java Map jest HashMap. Jest to implementacja interfejsu Map oparta na tablicy skrótów.Implementuje wszystkie operacje na mapiei zezwala na wartości null i jeden klucz pusty. Ponadto klasa ta nie utrzymuje żadnego porządku wśród swoich elementów. Oto przykładowy program prezentujący klasę HashMap.
pakiet MyPackage import java.util. * class HashMapExample {public static void main (String [] args) {Mapa kursów = new HashMap () // Dodaj kilka kursów. kursy.put ('Kursy Java', nowe Integer (6)) kursy.put ('Kursy w chmurze', nowe Integer (7)) kursy.put ('Kursy programowania', nowe Integer (5)) kursy.put (' Kursy nauki o danych ', nowa liczba całkowita (2)) System.out.println (' Wszystkie kursy: '+ kursy.size ()) Zestawst = course.entrySet () for (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println () String searchKey = 'Java Courses' if (course.containsKey (searchKey)) System.out.println ('Found total' +ourses.get (searchKey) + '' + searchKey)}}
Wynik
Łączna liczba kursów: 4 kursy w chmurze: 7 kursów programowania: 5 kursów Data Science: 2 kursy Java: 6 Znaleziono łącznie 6 kursów Java
W powyższym programie wykorzystałem wiele metod wymienionych w tabeli. Po pierwsze, plik położyć() metoda wstawia 4 wpisy do mapy, a rozmiar() w następnym kroku wyświetla rozmiar mapy (łączna liczba par klucz-wartość). Następnie w następnym kroku entrySet () metoda zwraca wszystkie pary klucz-wartość. Program pokazuje również, jak korzystać z otrzymać() metoda wyszukiwania wartości przy użyciu skojarzonego klucza.
Przejdźmy do następnej klasy, która implementuje interfejs mapy Java - TreeMap.
TreeMap Class
Ta implementacja używa drzewa czerwono-czarnego jako podstawy struktura danych . TreeMap jest sortowane zgodnie z naturalną kolejnością kluczy lub przez komparator dostarczony w czasie tworzenia. Ta implementacja nie zezwala na wartości null, ale utrzymujeporządek na jego elementach. Oto przykładowy program demonstrujący klasę TreeMap.
pakiet MyPackage import java.util. * class TreeMapEx {public static void main (String [] args) {Mapy kursów = nowe TreeMap () // Dodaj kursy. kursy.put ('Kursy Java', nowe Integer (3)) kursy.put ('Kursy AWS', nowe Integer (7)) kursy.put ('Kursy programowania', nowe Integer (8)) kursy.put (' Kursy nauki o danych ', nowa liczba całkowita (2)) System.out.println (' Wszystkie kursy: '+ kursy.size ()) Zestawst = course.entrySet () for (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}
Wynik
Łącznie kursy: 4 kursy AWS: 7 kursów Data Science: 2 kursy Java: 3 kursy programowania: 8
Na wyjściu elementy mapy są drukowane w ścisłej kolejności leksykograficznej, która nie występuje w poprzednich przykładach HashMap. Następna klasa, o której będziemy mówić, to LinkedHashMap .
Klasa LinkedHashMap
Jak nazwa wskazuje, ta implementacja interfejsu Java Map wykorzystuje tabelę skrótów i połączoną listę jako podstawowe struktury danych. Tak więc kolejność LinkedHashMap toprzewidywalne, z zamówieniem domyślnym. Pozwala również na wartości null, takie jak w HashMap. Oto przykładowy program demonstrujący klasę TreeMap.
pakiet MyPackage import java.util. * public class LinkedHashMapExample {public static void main (String a []) {LinkedHashMapourses = new LinkedHashMap () course.put ('Java Courses', new Integer (3)) course.put (' Kursy w chmurze ', nowe Integer (7)) course.put (' Programming Courses ', new Integer (8)) course.put (' Data Science Courses ', new Integer (2)) // Drukuje elementy w tej samej kolejności // tak jak zostały wstawione System.out.println (kursy) System.out.println ('Razem kursy:' + kursy.size ()) System.out.println ('Zawiera klucz' Hadoop '?' + course.containsKey ('Hadoop')) System.out.println ('Uzyskiwanie wartości dla klucza' Kursy programowania ':' + course.get ('Kursy programowania')) System.out.println ('Czy mapa jest pusta?' + Course.isEmpty ()) System.out.println ('usuń element' Kursy w chmurze ':' + kursy.remove ('Kursy w chmurze')) System.out.println (kursy)}}
Wynik
{Kursy Java = 3, Kursy w chmurze = 7, Kursy programowania = 8, Kursy nauki o danych = 2} Wszystkie kursy: 4 Zawiera klucz „Hadoop”? false Pobieranie wartości dla klucza „Kursy programowania”: 8 Czy mapa jest pusta? false delete element 'Cloud Courses': 7 {Java Courses = 3, Programming Courses = 8, Data Science Courses = 2}
Przykładowy program jest dość prosty do zrozumienia. Użyłem kilku podstawowych metod, aby zademonstrować działanie LinkeHashMap w Javie. Jak powiedziałem wcześniej, oprócz tych trzech, istnieje wiele innych klas, które implementują interfejs Java Map.
To prowadzi nas do końca artykułu „Interfejs mapy Java”. Omówiłem jeden z interesujących tematów języka Java, jakim jest interfejs Map w Javie.
Upewnij się, że ćwiczysz jak najwięcej i cofnij swoje doświadczenie.
Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Jesteśmy tutaj, aby pomóc Ci na każdym etapie Twojej podróży, aby zostać oprócz tych pytań do rozmowy kwalifikacyjnej w języku Java, opracowaliśmy program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego „interfejsu mapy java” artykuł, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.