Java >> Java tutorial >  >> Tag >> HashMap

Java HashMap – Ved, hvordan man implementerer HashMap i Java

HashMap er en kortbaseret samlingsklasse i Java, som bruges til at gemme data i nøgle- og værdipar. Det hjælper også med at implementere kortgrænsefladen i Java. Gennem denne artikels medie vil jeg fortælle dig, hvordan du implementerer Java HashMap.

Nedenstående emner er dækket i denne artikel:

  • Hvad er et Java Hashmap?
  • Funktioner i Hashmap
  • Ydeevne af Java HashMap
  • Konstruktører af HashMap i Java
  • HashMap-implementering

Hvad er et Java HashMap?

HashMap er dybest set en del af Javas samling siden Java 1.2. Det giver den grundlæggende implementering af kortgrænsefladen i Java. Det gemmer generelt dataene i par i form af (Nøgle, Værdi). For at få adgang til en værdi i HashMap skal man kende dens nøgle.

Det er navngivet som HashMap, fordi det bruger en teknik kaldet Hashing . Hashing er en proces med at konvertere en større streng til en mindre ved at holde værdien af ​​strengen konstant. Den resulterende komprimerede værdi hjælper med indeksering og hurtigere søgninger.

Med dette, lad os nu kende de forskellige funktioner i HashMap i Java.

Funktioner i HashMap

  • Hash Map er en del af en util-pakke i Java.

  • HashMap udvider en abstrakt klasse AbstractMap, som også giver en ufuldstændig implementering af kortgrænsefladen.

  • Den implementerer også Klonbar og Serialiserbar K og V i ovenstående definition repræsenterer henholdsvis Nøgle og Værdi.

  • HashMap tillader ikke dublerede nøgler, men tillader duplikerede værdier. Det betyder, at en enkelt nøgle ikke kan indeholde mere end 1 værdi, men mere end 1 nøgle kan indeholde en enkelt værdi.

  • HashMap tillader kun null-nøgle, men flere null-værdier kan bruges.

  • Denne klasse giver ingen garantier med hensyn til rækkefølgen af ​​kortet; Det garanterer især ikke, at ordren vil forblive konstant over tid. Den ligner nogenlunde Hash Table, men er usynkroniseret.

Nu hvor du ved, hvad Hashmap og dets forskellige funktioner er, så lad os gå videre og forstå ydeevnen af ​​Java Hashmap.

Ydeevne af Java HashMap

Ydeevne afhænger hovedsageligt af 2 parametre:

  1. Oprindelig kapacitet :Kapacitet er simpelthen antallet af spande, mens Initial Capacity er kapaciteten af ​​HashMap-instansen, når den oprettes.
  2. Belastningsfaktor: Belastningsfaktoren er en foranstaltning, der skal foretages, når rehashing. Rehashing er en proces med at øge kapaciteten. I HashMap ganges kapaciteten med 2. Load Factor er også et mål for at bestemme, hvilken brøkdel af HashMap'et, der må fyldes før rehashing. Når antallet af poster i HashMap stiger, øges produktet af den aktuelle kapacitet og Load Factor-kapaciteten også. Det indebærer, at rehashing er udført.

Bemærk :Hvis den oprindelige kapacitet holdes højere, vil rehashing aldrig blive udført. Men ved at holde det højere øger det tidskompleksiteten af ​​iteration. Så det bør vælges meget smart for at øge ydeevnen. Det forventede antal værdier bør tages i betragtning for at indstille startkapaciteten. Den mest almindeligt foretrukne belastningsfaktorværdi er 0,75, hvilket giver en god del mellem tids- og pladsomkostninger. Belastningsfaktorens værdi varierer mellem 0 og 1.

Konstruktører i HashMap

HashMap giver fire konstruktører, og adgangsmodifikatoren for hver af dem er offentlig:

Konstruktører Beskrivelse
1. HashMap() Det er standardkonstruktøren, der opretter en instans af HashMap med initial kapacitet 16 og belastningsfaktor 0,75.
2. HashMap(int initial kapacitet) Dette bruges til at oprette en HashMap-instans med specificeret startkapacitet og belastningsfaktor 0,75
3. HashMap(int initial kapacitet, float load factor) Det opretter en HashMap-instans med specificeret startkapacitet og specificeret belastningsfaktor.
4. HashMap(Kortkort) Det opretter en forekomst af HashMap med de samme tilknytninger som et specificeret kort.

Med dette, lad os nu se, hvordan man implementerer HashMap i Java.

HashMap-implementering

Programmet nedenfor illustrerer, hvordan man implementerer HashMap i Java.

package Edureka;

//Java program to illustrate
//Java.util.HashMap
import java.util.HashMap;
import java.util.Map;

public class Hashmap{
public static void main(String[] args){
HashMa<String, Integer> map = new HashMap<>();
print(map);
map.put("abc", 10);
map.put("mno", 30);
map.put("xyz", 20);

System.out.println("Size of map is" + map.size());

print(map);
if (map.containsKey("mno"))
{
Integer a = map.get("mno");
System.out.println("value for key \"mno\" is:- " + a);
}

map.clear();
print(map);
}

public static void print(Map<String, Integer> map){
if (map.isEmpty()){
System.out.println("map is empty");
}
else{
System.out.println(map);
}
}
}

Når du udfører HashMap-programmet, går output sådan her:

map is empty
Size of map is:- 3
{abc=10, xyz=20, mno=30}
value for key "abc" is:- 10
map is empty

Så dette bringer os til slutningen af ​​Java HashMap-artiklen. Jeg håber, du fandt det informativt og hjalp dig med at forstå det grundlæggende.

Tjek Java-certificeringsuddannelsen af Edureka, en betroet online læringsvirksomhed med et netværk af 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 udover dette java-interviewspørgsmål, kommer vi med et pensum, der er designet til studerende og professionelle, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-frameworks som Hibernate &Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i dette "Java HashMap ” artikel og vi vender tilbage til dig hurtigst muligt.


Java tag