Hvordan implementeres kortgrænsefladen i Java?



Denne artikel om Java Map Inteface hjælper dig med at forstå, hvordan Map fungerer i Java og introducerer dig til forskellige klasser, der implementerer Map Interface

Et af de mest interessante emner i Java er kortgrænsefladen, somrepræsenterer en kortlægning mellem en nøgle og en værdi.Det misforstås ofte at være en undertype af interface i Java.Denne artikel om Java Map Interface hjælper dig med at forstå og mestre, hvordan et kort fungerer .

Nedenfor er de emner, der er omfattet af denne artikel:





Java Map Interface

Et kort i Java er et objekt der kortlægger nøgler til værdier og er designet til hurtigere opslag. Data gemmes i nøgleværdipar, og hver nøgle er unik. Hver nøgle kortlægges til en værdi, deraf navnetskortet. Disse nøgleværdipar kaldes kortindgange.

Kort i Java - Java Map Interface - Edureka



I , java.util.Map er en der inkluderer metodesignaturer til indsættelse, fjernelse og hentning af elementer baseret på en nøgle. Med sådanne metoder er det et perfekt værktøj til kortlægning af nøgleværdiforening som ordbøger.

Karakteristika for kortgrænseflade

  • Kortgrænsefladen er ikke en ægte undertype af samlingsgrænsefladen, derfordens egenskaber og adfærd adskiller sig fra resten af ​​samlingstyperne.
  • Det givertre samlingvisninger - sæt nøgler, sæt nøgleværditilknytninger og samling af værdier.
  • TILKortkan ikke indeholde duplikatnøgler, og hver nøgle kan højst kortlægges til en værdi. Nogle implementeringer tillader nul-nøgle og nulværdi ( HashMap og LinkedHashMap ) men nogle gør det ikke ( TreeMap).
  • Kortgrænsefladen garanterer ikke rækkefølgen af ​​tilknytninger, men det afhænger af implementeringen. For eksempel, HashMap garanterer ikke rækkefølgen af ​​kortlægninger, men TreeMap gør.
  • AbstractMap-klassen giver en skeletimplementering af Java Map-grænsefladen og det meste af Map-betonen klasser udvide klassen AbstractMap og implementere nødvendige metoder.

Nu hvor du har en idé om, hvad Map-interface er i er, lad os gå videre og tjekke hierarkiet på Java Map.

Java-korthierarki

Der er to grænseflader, der implementerer kortet i java: Map og SortedMap. Og populære implementeringsklasser af Map i Java er HashMap, TreeMap og LinkedHashMap. Hierarkiet for Java Map er angivet nedenfor:



Før vi tjekker de tre implementeringsklasser i Java Map Interface, der er nævnt ovenfor, er der nogle almindelige metoder, som du kan komme på tværs af, når du arbejder med kortet.

Metoder i Java Map Interface

Metoder

Beskrivelse

offentlig put (Objektnøgle, Objektværdi)Denne metode indsætter en post på kortet
offentligvoid putAll (Kortkort)Denne metode indsætter det angivne kort på dette kort
offentlig fjernelse af objekt (Objektnøgle)Det bruges til at slette en post for den angivne nøgle
public Set keySet ()Det returnerer Set-visningen, der indeholder alle tasterne
public Set entrySet ()Det returnerer Set-visningen, der indeholder alle taster og værdier
ugyldigt klart ()Det bruges til at nulstille kortet
public void putIfAbsent (K-tast, V-værdi)Den indsætter kun den angivne værdi med den angivne nøgle på kortet, hvis den ikke allerede er specificeret
offentlig Object get (Objektnøgle)Den returnerer værdien for den angivne nøgle
public boolean containsKey (Objektnøgle)
Det bruges til at søge i den angivne nøgle fra dette kort

Implementeringer af kort

Der er flere der implementerer Java Mapmen tre store og generelle implementeringer erHashMap, TreeMap og LinkedHashMap.Lad os se karakteristika og adfærd ved hver implementering med et eksempel

HashMap-klasse

Den mest almindelige klasse, der implementerer Java Map-grænsefladen, er HashMap. Det er en hash-tabelbaseret implementering af Map-grænsefladen.Det implementerer alle kortoperationerog tillader nulværdier og en nøgle. Desuden opretholder denne klasse ingen orden blandt sine elementer. Her er et eksempel på et program, der demonstrerer HashMap-klassen.

pakke MyPackage import java.util. * klasse HashMapExample {public static void main (String [] args) {Map courses = new HashMap () // Tilføj nogle kurser. courses.put ('Java Courses', new Integer (6)) courses.put ('Cloud Courses', new Integer (7)) courses.put ('Programming Courses', new Integer (5)) courses.put (' Datavidenskabskurser ', nyt heltal (2)) System.out.println (' Total kurser: '+ kurser.størrelse ()) Sætst = courses.entrySet () for (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println () String searchKey = 'Java Courses' hvis (courses.containsKey (searchKey)) System.out.println ('Found total' + courses.get (searchKey) + '' + searchKey)}}

Produktion

I alt kurser: 4 Cloud-kurser: 7 Programmeringskurser: 5 Data Science-kurser: 2 Java-kurser: 6 Fundet i alt 6 Java-kurser

I ovenstående program har jeg brugt en række metoder, der er nævnt i tabellen. For det første sætte() metoden indsætter 4 poster på kortet, og størrelse() metode i det næste trin viser kortets størrelse (samlede nøgleværdipar). Derefter, i næste trin, entrySet () metode returnerer alle nøgleværdiparene. Programmet viser også, hvordan man gør brug af få() metode til at søge efter en værdi ved hjælp af den tilknyttede nøgle.

Lad os gå videre til den næste klasse, der implementerer Java Map Interface - TreeMap.

TreeMap-klasse

Denne implementering bruger det rød-sorte træ som den underliggende datastruktur . Et TreeMap sorteres efter den naturlige rækkefølge af dets nøgler eller af en Comparator, der leveres på oprettelsestidspunktet. Denne implementering tillader ikke nul, men opretholderrækkefølge på dets elementer. Her er et eksempel på et program, der demonstrerer klassen TreeMap.

pakke MyPackage import java.util. * klasse TreeMapEx {public static void main (String [] args) {Map courses = new TreeMap () // Tilføj nogle kurser. courses.put ('Java Courses', new Integer (3)) courses.put ('AWS Courses', new Integer (7)) courses.put ('Programming Courses', new Integer (8)) courses.put (' Datavidenskabskurser ', nyt heltal (2)) System.out.println (' Total kurser: '+ kurser.størrelse ()) Sætst = courses.entrySet () for (Map.Entry me: st) {System.out.print (me.getKey () + ':') System.out.println (me.getValue ())} System.out. println ()}}

Produktion

Samlede kurser: 4 AWS-kurser: 7 Data Science-kurser: 2 Java-kurser: 3 Programmeringskurser: 8

I outputen udskrives elementerne på kortet i en streng leksikografisk rækkefølge, som ikke vises i de tidligere eksempler på HashMap. Den næste klasse, som vi skal diskutere, er LinkedHashMap .

LinkedHashMap-klasse

Som navnet indikerer bruger denne implementering af Java Map-grænsefladen en hash-tabel og en sammenkædet liste som de underliggende datastrukturer. Således er rækkefølgen af ​​et LinkedHashMapforudsigelig, med indsættelsesrækkefølgen som standardrækkefølgen. Tillader også nuller som i HashMap. Her er et eksempel på et program, der demonstrerer klassen TreeMap.

pakke MyPackage import java.util. * public class LinkedHashMapExample {public static void main (String a []) {LinkedHashMap courses = new LinkedHashMap () courses.put ('Java Courses', new Integer (3)) courses.put (' Cloud Courses ', new Integer (7)) courses.put (' Programming Courses ', new Integer (8)) courses. Input (' Data Science Courses ', new Integer (2)) // Det udskriver elementerne i samme rækkefølge // da de blev indsat System.out.println (kurser) System.out.println ('Total kurser:' + kurser.størrelse ()) System.out.println ('Indeholder nøgle' ​​Hadoop '?' + kurser.containsKey ('Hadoop')) System.out.println ('Få værdi for nøglen' Programmeringskurser ':' + kurser.get ('Programmeringskurser')) System.out.println ('Er kortet tomt?' + Kurser.isEmpty ()) System.out.println ('slet element' Cloud Courses ':' + courses.remove ('Cloud Courses')) System.out.println (kurser)}}

Produktion

oprette en række objekter
{Java-kurser = 3, Cloud-kurser = 7, Programmeringskurser = 8, Data Science-kurser = 2} I alt kurser: 4 Indeholder nøglen 'Hadoop'? false Få værdi for nøglen 'Programmeringskurser': 8 Er kortet tomt? falsk sletteelement 'Cloud Courses': 7 {Java Courses = 3, Programming Courses = 8, Data Science Courses = 2}

Eksempelprogrammet er ret simpelt at forstå. Jeg har brugt nogle grundlæggende metoder til at demonstrere funktionen af ​​LinkeHashMap i Java. Som jeg sagde tidligere, bortset fra disse tre, er der mange andre klasser, der implementerer Java Map-interface.

Dette bringer os til slutningen af ​​denne artikel om 'Java Map Interface'. Jeg har dækket et af de interessante emner i Java, som er kortgrænseflade i Java.

Sørg for at øve så meget som muligt, og vend din oplevelse tilbage.

Tjek den af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et ud over dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne 'java Map interface' artikel, og vi vender tilbage til dig så hurtigt som muligt.