logo

Java HashMap

Java HashMap klassehierarki

Java HashMap klasse implementerer Map-grensesnittet som lar oss å lagre nøkkel og verdipar , hvor nøkler skal være unike. Hvis du prøver å sette inn duplikatnøkkelen, vil den erstatte elementet til den tilsvarende nøkkelen. Det er enkelt å utføre operasjoner ved å bruke nøkkelindeksen som oppdatering, sletting osv. HashMap-klassen finnes ijava.utilpakke.

HashMap i Java er som den gamle Hashtable-klassen, men den er ikke synkronisert. Det lar oss også lagre null-elementene, men det skal bare være én null-nøkkel. Siden Java 5 er det betegnet somHashMap, hvor K står for nøkkel og V for verdi. Den arver AbstractMap-klassen og implementerer Map-grensesnittet.

Poeng å huske

  • Java HashMap inneholder verdier basert på nøkkelen.
  • Java HashMap inneholder bare unike nøkler.
  • Java HashMap kan ha én nullnøkkel og flere nullverdier.
  • Java HashMap er ikke synkronisert.
  • Java HashMap opprettholder ingen orden.
  • Den opprinnelige standardkapasiteten til Java HashMap-klassen er 16 med en lastfaktor på 0,75.

Hierarki av HashMap-klassen

Som vist i figuren ovenfor, utvider HashMap-klassen AbstractMap-klassen og implementerer Map-grensesnitt.

HashMap-klasseerklæring

La oss se erklæringen for java.util.HashMap-klassen.

java-metoden
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

HashMap-klasseparametere

La oss se parameterne for java.util.HashMap-klassen.

    K: Det er typen nøkler som vedlikeholdes av dette kartet.I: Det er typen kartlagte verdier.

Konstruktører av Java HashMap-klassen

KonstruktørBeskrivelse
HashMap()Det brukes til å konstruere et standard HashMap.
HashMap(Kart m)Den brukes til å initialisere hash-kartet ved å bruke elementene til det gitte kartobjektet m.
HashMap (int kapasitet)Den brukes til å initialisere kapasiteten til hash-kartet til den gitte heltallsverdien, kapasitet.
HashMap (int kapasitet, float loadFactor)Det brukes til å initialisere både kapasiteten og belastningsfaktoren til hash-kartet ved å bruke argumentene.

Metoder for Java HashMap-klassen

MetodeBeskrivelse
void clear()Den brukes til å fjerne alle kartene fra dette kartet.
boolsk er tom()Den brukes til å returnere sann hvis dette kartet ikke inneholder nøkkelverdi-tilordninger.
Objekt klone()Den brukes til å returnere en grunn kopi av denne HashMap-forekomsten: selve nøklene og verdiene er ikke klonet.
Sett oppføringSett()Den brukes til å returnere en samlingsvisning av kartene i dette kartet.
Sett keySet()Den brukes til å returnere en sett visning av nøklene i dette kartet.
V put(Objektnøkkel, Objektverdi)Den brukes til å sette inn en oppføring i kartet.
void putAll(Kart kart)Den brukes til å sette inn det angitte kartet i kartet.
V putIfFraværende(K-nøkkel, V-verdi)Den setter inn den angitte verdien med den angitte nøkkelen i kartet bare hvis den ikke allerede er spesifisert.
V fjern (objektnøkkel)Den brukes til å slette en oppføring for den angitte nøkkelen.
boolsk fjern (objektnøkkel, objektverdi)Den fjerner de angitte verdiene med de tilhørende spesifiserte nøklene fra kartet.
V compute (K-tast, BiFunction remappingFunction)Den brukes til å beregne en tilordning for den angitte nøkkelen og dens gjeldende tilordnede verdi (eller null hvis det ikke er noen gjeldende tilordning).
V computeIfAbsent(K-tast, FunksjonsmappingFunction)Den brukes til å beregne verdien ved hjelp av den gitte tilordningsfunksjonen, hvis den angitte nøkkelen ikke allerede er assosiert med en verdi (eller er tilordnet til null), og legger den inn i dette kartet med mindre null.
V computeIfPresent(K-tast, BiFunction remappingFunction)Den brukes til å beregne en ny tilordning gitt nøkkelen og dens nåværende tilordnede verdi hvis verdien for den angitte nøkkelen er tilstede og ikke er null.
boolean containsValue(Objektverdi)Denne metoden returnerer true hvis en verdi lik verdien finnes i kartet, ellers returnerer false.
boolean containsKey(Objektnøkkel)Denne metoden returnerer true hvis en nøkkel lik nøkkelen finnes i kartet, ellers returnerer false.
boolsk lik(Objekt o)Den brukes til å sammenligne det angitte objektet med kartet.
void forEach (BiConsumer-handling)Den utfører den gitte handlingen for hver oppføring i kartet til alle oppføringer er behandlet eller handlingen gir et unntak.
V get (objektnøkkel)Denne metoden returnerer objektet som inneholder verdien knyttet til nøkkelen.
V getOrDefault(Objektnøkkel, V defaultValue)Den returnerer verdien som den angitte nøkkelen er tilordnet til, eller standardverdi hvis kartet ikke inneholder noen tilordning for nøkkelen.
boolsk er tom()Denne metoden returnerer true hvis kartet er tomt; returnerer usann hvis den inneholder minst én nøkkel.
V flette (K-tast, V-verdi, BiFunction remappingFunction)Hvis den angitte nøkkelen ikke allerede er assosiert med en verdi eller er assosiert med null, knytter den til den gitte ikke-nullverdien.
V erstatte (K-tast, V-verdi)Den erstatter den angitte verdien for en spesifisert nøkkel.
boolsk erstatt (K-tast, V oldValue, V newValue)Den erstatter den gamle verdien med den nye verdien for en spesifisert nøkkel.
void replaceAll (BiFunction-funksjon)Den erstatter hver oppførings verdi med resultatet av å påkalle den gitte funksjonen på den oppføringen til alle oppføringer er behandlet eller funksjonen gir et unntak.
Samlingsverdier()Den returnerer en samlingsvisning av verdiene i kartet.
int størrelse()Denne metoden returnerer antall oppføringer i kartet.

Eksempel på Java HashMap

La oss se et enkelt eksempel på HashMap for å lagre nøkkel- og verdipar.

 import java.util.*; public class HashMapExample1{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(4,'Grapes'); System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Test det nå
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

I dette eksemplet lagrer vi heltall som nøkkelen og streng som verdien, så vi brukerHashMapsom typen. Desette()metoden setter inn elementene i kartet.

For å få nøkkel- og verdielementene, bør vi kalle metodene getKey() og getValue(). DeKart.Entrygrensesnittet inneholder getKey() og getValue() metoder. Men vi bør kalle entrySet()-metoden til Map-grensesnittet for å få forekomsten av Map.Entry.

Ingen duplikatnøkkel på HashMap

Du kan ikke lagre dupliserte nøkler i HashMap. Men hvis du prøver å lagre duplikatnøkkel med en annen verdi, vil den erstatte verdien.

 import java.util.*; public class HashMapExample2{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(1,'Grapes'); //trying duplicate key System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Test det nå
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Java HashMap eksempel for å legge til () elementer

Her ser vi forskjellige måter å sette inn elementer på.

 import java.util.*; class HashMap1{ public static void main(String args[]){ HashMap hm=new HashMap(); System.out.println('Initial list of elements: '+hm); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('After invoking put() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } hm.putIfAbsent(103, 'Gaurav'); System.out.println('After invoking putIfAbsent() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } HashMap map=new HashMap(); map.put(104,'Ravi'); map.putAll(hm); System.out.println('After invoking putAll() method '); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: {} After invoking put() method 100 Amit 101 Vijay 102 Rahul After invoking putIfAbsent() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav After invoking putAll() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav 104 Ravi 

Java HashMap eksempel for å fjerne () elementer

Her ser vi forskjellige måter å fjerne elementer på.

 import java.util.*; public class HashMap2 { public static void main(String args[]) { HashMap map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); map.put(103, 'Gaurav'); System.out.println('Initial list of elements: '+map); //key-based removal map.remove(100); System.out.println('Updated list of elements: '+map); //value-based removal map.remove(101); System.out.println('Updated list of elements: '+map); //key-value pair based removal map.remove(102, 'Rahul'); System.out.println('Updated list of elements: '+map); } } 

Produksjon:

 Initial list of elements: {100=Amit, 101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {102=Rahul, 103=Gaurav} Updated list of elements: {103=Gaurav} 

Java HashMap eksempel for å erstatte() elementer

Her ser vi forskjellige måter å erstatte elementer på.

 import java.util.*; class HashMap3{ public static void main(String args[]){ HashMap hm=new HashMap(); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('Initial list of elements:'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(102, 'Gaurav'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(101, 'Vijay', 'Ravi'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replaceAll((k,v) -> 'Ajay'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: 100 Amit 101 Vijay 102 Rahul Updated list of elements: 100 Amit 101 Vijay 102 Gaurav Updated list of elements: 100 Amit 101 Ravi 102 Gaurav Updated list of elements: 100 Ajay 101 Ajay 102 Ajay 

Forskjellen mellom HashSet og HashMap

HashSet inneholder bare verdier mens HashMap inneholder en oppføring (nøkkel og verdi).

Java HashMap Eksempel: Bok

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new HashMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 
Test det nå

Produksjon:

 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications and Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6 

Relaterte temaer

Hvordan iterere kart i Java

Hvordan sortere HashMap i Java

Belastningsfaktor i HashMap

Arbeid av HashMap i Java | Hvordan HashMap fungerer

Forskjellen mellom HashMap og Hashtable

Hvordan sortere HashMap etter verdi

Forskjellen mellom HashSet og HashMap

Forskjellen mellom HashMap og TreeMap

Java kartgrensesnitt

java pause