W tym samouczku poznamy interfejs Java Map i jego metody.
Map
Interfejs zbiorach ramach Java zapewnia funkcjonalność struktury danych map.
Działanie mapy
W Javie elementy Map
są przechowywane w parach klucz / wartość . Klucze to unikalne wartości powiązane z poszczególnymi Wartościami .
Mapa nie może zawierać zduplikowanych kluczy. Każdy klucz jest powiązany z jedną wartością.
Możemy uzyskiwać dostęp i modyfikować wartości za pomocą skojarzonych z nimi kluczy.
Na powyższym diagramie mamy wartości: Stany Zjednoczone, Brazylia i Hiszpania. Mamy odpowiednie klucze: nas, br i es.
Teraz możemy uzyskać dostęp do tych wartości za pomocą odpowiednich kluczy.
Uwaga:Map
interfejs utrzymuje 3 różne zestawy:
- komplet kluczy
- zbiór wartości
- zestaw powiązań klucz / wartość (mapowanie).
Dlatego możemy indywidualnie uzyskać dostęp do kluczy, wartości i skojarzeń.
Klasy implementujące Map
Ponieważ Map
jest to interfejs, nie możemy tworzyć z niego obiektów.
W celu wykorzystania funkcjonalności Map
interfejsu możemy skorzystać z następujących klas:
- HashMap
- EnumMap
- LinkedHashMap
- WeakHashMap
- TreeMap
Te klasy są zdefiniowane w ramach kolekcji i implementują Map
interfejs.

Interfejsy rozszerzające Map
Map
Interfejs jest również przedłużony o tych podinterfejsów:
- SortedMap
- NavigableMap
- ConcurrentMap

Jak korzystać z mapy?
W Javie musimy zaimportować java.util.Map
pakiet, aby użyć Map
. Po zaimportowaniu pakietu, oto jak możemy stworzyć mapę.
// Map implementation using HashMap Map numbers = new HashMap();
W powyższym kodzie utworzyliśmy Map
nazwane liczby. Użyliśmy tej HashMap
klasy do zaimplementowania Map
interfejsu.
Tutaj,
- Klucz - unikalny identyfikator służący do powiązania każdego elementu (wartości) na mapie
- Wartość - elementy skojarzone z kluczami w mapie
Metody mapowania
Map
Interfejs obejmuje wszystkie sposoby przez Collection
interfejs. To dlatego, że Collection
jest super interfejsem Map
.
Oprócz metod dostępnych w Collection
interfejsie, Map
interfejs zawiera również następujące metody:
- put (K, V) - Wstawia skojarzenie klucza K i wartości V do mapy. Jeśli klucz jest już obecny, nowa wartość zastępuje starą wartość.
- putAll () - wstawia wszystkie wpisy z określonej mapy do tej mapy.
- putIfAbsent (K, V) - Wstawia skojarzenie, jeśli klucz K nie jest już powiązany z wartością V.
- get (K) - zwraca wartość skojarzoną z określonym kluczem K. Jeśli klucz nie zostanie znaleziony, zwraca
null
. - getOrDefault (K, defaultValue) - zwraca wartość skojarzoną z określonym kluczem K. Jeśli klucz nie zostanie znaleziony, zwraca wartość defaultValue.
- zawieraKlucz (K) - sprawdza, czy określony klucz K jest obecny na mapie, czy nie.
- zawieraValue (V) - sprawdza, czy określona wartość V jest obecna na mapie, czy nie.
- replace (K, V) - Zamień wartość klucza K na nową określoną wartość V.
- replace (K, oldValue, newValue) - zastępuje wartość klucza K nową wartością newValue tylko wtedy, gdy klucz K jest skojarzony z wartością oldValue.
- remove (K) - usuwa wpis z mapy reprezentowany przez klawisz K.
- remove (K, V) - usuwa wpis z mapy, dla którego klucz K jest powiązany z wartością V.
- keySet () - Zwraca zestaw wszystkich kluczy obecnych na mapie.
- wartości () - zwraca zestaw wszystkich wartości obecnych na mapie.
- entrySet () - zwraca zestaw wszystkich mapowań klucz / wartość obecnych w mapie.
Implementacja interfejsu mapy
1. Implementacja klasy HashMap
import java.util.Map; import java.util.HashMap; class Main ( public static void main(String() args) ( // Creating a map using the HashMap Map numbers = new HashMap(); // Insert elements to the map numbers.put("One", 1); numbers.put("Two", 2); System.out.println("Map: " + numbers); // Access keys of the map System.out.println("Keys: " + numbers.keySet()); // Access values of the map System.out.println("Values: " + numbers.values()); // Access entries of the map System.out.println("Entries: " + numbers.entrySet()); // Remove Elements from the map int value = numbers.remove("Two"); System.out.println("Removed Value: " + value); ) )
Wynik
Mapa: (jeden = 1, dwa = 2) Klucze: (jeden, dwa) Wartości: (1, 2) Wpisy: (jeden = 1, dwa = 2) Usunięta wartość: 2
Aby dowiedzieć się więcej HashMap
, odwiedź witrynę Java HashMap.
2. Implementacja klasy TreeMap
import java.util.Map; import java.util.TreeMap; class Main ( public static void main(String() args) ( // Creating Map using TreeMap Map values = new TreeMap(); // Insert elements to map values.put("Second", 2); values.put("First", 1); System.out.println("Map using TreeMap: " + values); // Replacing the values values.replace("First", 11); values.replace("Second", 22); System.out.println("New Map: " + values); // Remove elements from the map int removedValue = values.remove("First"); System.out.println("Removed Value: " + removedValue); ) )
Wynik
Mapowanie za pomocą TreeMap: (Pierwsza = 1, Druga = 2) Nowa mapa: (Pierwsza = 11, Druga = 22) Usunięta wartość: 11
Aby dowiedzieć się więcej TreeMap
, odwiedź Java TreeMap.