I denne vejledning lærer vi om Java Map-grænsefladen og dens metoder.
Den Map
grænsefladen af Java kollektioner rammer giver funktionaliteten af kortet datastruktur.
Arbejd af kort
I Java Map
gemmes elementer i nøgle / værdipar. Nøgler er unikke værdier, der er knyttet til individuelle værdier .
Et kort kan ikke indeholde duplikatnøgler. Og hver nøgle er knyttet til en enkelt værdi.
Vi kan få adgang til og ændre værdier ved hjælp af de nøgler, der er knyttet til dem.
I ovenstående diagram har vi værdier: USA, Brasilien og Spanien. Og vi har tilsvarende nøgler: os, br og es.
Nu kan vi få adgang til disse værdier ved hjælp af deres tilsvarende nøgler.
Bemærk: Den Map
grænseflade fastholder 3 forskellige sæt:
- sæt nøgler
- værdisættet
- sættet med nøgle / værdiforening (kortlægning).
Derfor kan vi få adgang til nøgler, værdier og tilknytninger individuelt.
Klasser, der implementerer Map
Da det Map
er en grænseflade, kan vi ikke oprette objekter ud fra det.
For at kunne bruge funktionerne i Map
grænsefladen kan vi bruge disse klasser:
- HashMap
- EnumMap
- LinkedHashMap
- WeakHashMap
- TreeMap
Disse klasser er defineret i samlingerammen og implementerer Map
grænsefladen.

Grænseflader, der udvider kortet
Den Map
interface er også forlænget med disse subinterfaces:
- SortedMap
- NavigableMap
- ConcurrentMap

Hvordan bruges Map?
I Java skal vi importere java.util.Map
pakken for at kunne bruge den Map
. Når vi først har importeret pakken, kan du oprette et kort her.
// Map implementation using HashMap Map numbers = new HashMap();
I ovenstående kode har vi oprettet et Map
navngivet nummer. Vi har brugt HashMap
klassen til at implementere Map
grænsefladen.
Her,
- Nøgle - en unik identifikator, der bruges til at knytte hvert element (værdi) til et kort
- Værdi - elementer tilknyttet nøgler på et kort
Metoder til kort
Den Map
grænseflade omfatter alle fremgangsmåderne ifølge Collection
grænsefladen. Det er fordi Collection
er en super grænseflade af Map
.
Udover metoder, der er tilgængelige i Collection
grænsefladen, Map
inkluderer grænsefladen også følgende metoder:
- put (K, V) - Indsætter tilknytningen af en nøgle K og en værdi V på kortet. Hvis nøglen allerede er til stede, erstatter den nye værdi den gamle værdi.
- putAll () - Indsætter alle poster fra det angivne kort til dette kort.
- putIfAbsent (K, V) - Indsætter tilknytningen, hvis nøglen K ikke allerede er tilknyttet værdien V.
- get (K) - Returnerer den værdi, der er knyttet til den angivne nøgle K. Hvis nøglen ikke findes, returnerer den
null
. - getOrDefault (K, defaultValue) - Returnerer den værdi, der er knyttet til den angivne nøgle K. Hvis nøglen ikke findes, returnerer den standardværdien.
- containKey (K) - Kontrollerer, om den angivne nøgle K er til stede på kortet eller ej.
- containValue (V) - Kontrollerer, om den angivne værdi V er til stede på kortet eller ej.
- erstat (K, V) - Erstat værdien for nøglen K med den nye specificerede værdi V.
- erstatte (K, oldValue, newValue) - Erstatter værdien af nøglen K med den nye værdi newValue kun, hvis nøglen K er knyttet til værdien oldValue.
- remove (K) - Fjerner posten fra kortet repræsenteret af tasten K.
- fjern (K, V) - Fjerner posten fra kortet, der har nøgle K tilknyttet værdi V.
- keySet () - Returnerer et sæt af alle tasterne på et kort.
- værdier () - Returnerer et sæt af alle de værdier, der findes på et kort.
- entrySet () - Returnerer et sæt af al nøgle- / værdikortlægning, der findes på et kort.
Implementering af kortgrænsefladen
1. Implementering af HashMap-klasse
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); ) )
Produktion
Kort: (Én = 1, To = 2) Taster: (Én, To) Værdier: (1, 2) Indtastninger: (Én = 1, To = 2) Fjernet værdi: 2
For at lære mere om HashMap
, besøg Java HashMap.
2. Implementering af TreeMap-klasse
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); ) )
Produktion
Kort ved hjælp af TreeMap: (First = 1, Second = 2) New Map: (First = 11, Second = 22) Fjernet værdi: 11
For at lære mere om det TreeMap
, besøg Java TreeMap.