Et HashMap (eller en HashTable) er en datastruktur som gir rask tilgang til data ved hjelp av nøkkelverdi-par. Java HashMap-klassen utvider Abstrakt kart klasse og implementerer Map-grensesnittet, som gir den tilgang til mange operasjoner. HashMaps har to typeparametere – K og V, der K lagrer nøklene og V lagrer verdiene i hver HashMap.
HashMap lar deg tilordne nøkler til en bestemt verdi og lagre elementer i tilfeldig rekkefølge. I denne artikkelen vil du lære hvordan du bruker Javas HashMap-klasse til å lagre, hente, oppdatere og slette data.
Opprette et Java HashMap
Java HashMap-klassen har fire konstruktører. Standardkonstruktøren er den mest populære, den lar deg lage et tomt HashMap som vil ha en standardkapasitet på 16.
importjava.util.HashMap;
offentligklasseHoved{
offentligstatisktomromhoved-(String[] args){
//opprette et HashMap
HashMap<Heltall, streng> fruitsMap = nytt HashMap<Heltall, streng>();
}
}
De Java klasse ovenfor bruker standard HashMap-konstruktøren for å lage en datastruktur kalt
fruktKart. fruitsMap-objektet vil lagre data som har en heltallsnøkkel og en strengverdi. Siden HashMap-klassen implementerer Map-grensesnittet, kan den imidlertid lagre en nullverdi i enten nøkkelfeltet, verdifeltet eller begge deler.Lagre data i et HashMap
Du kan utføre flere operasjoner ved å bruke HashMap-klassen. De put (K-tast, V-verdi) metoden er blant de mest populære metodene, og den lar deg lagre data ved å bruke et nøkkel-verdi-par, der hver nøkkel tilordnes en verdi.
importjava.util.HashMap;
offentligklasseHoved{
offentligstatisktomromhoved-(String[] args){
//opprette et HashMap
HashMap<Heltall, streng> fruitsMap = nytt HashMap<Heltall, streng>();
//legg til elementer i HashMap
fruitsMap.put (3,"Pære");
fruitsMap.put (6,"Mango");
fruitsMap.put (7,"Plomme");
fruitsMap.put (4,"eple");
fruitsMap.put (1,"oransje");
fruitsMap.put (5,"Bær");
fruitsMap.put (2,"Melon");
}
}
Den oppdaterte klassen ovenfor bruker put()-metoden for å legge til flere frukter og nøkkelen deres til den eksisterende fruitsMap-datastrukturen. Det er viktig å merke seg at koden ovenfor legger dataene til kartet tilfeldig. Denne detaljen vil bli nyttig når du begynner å lese dataene fra HashMap.
Lese data fra et HashMap
Det er flere måter å lese data fra et HashMap på. Metoden du bruker vil avhenge av hvordan du vil at dataene skal se ut eller til og med typen data du vil hente.
Hent HashMap-objektet
Hvis du ønsker å hente dataene som et objekt, kan du ganske enkelt få tilgang til HashMap-objektet, som i eksemplet nedenfor er fruitsMap.
//Se alle elementene som et objekt
System.ute.println(fruktKart);
Ved å legge til kodelinjen ovenfor i hovedklassen, skrives følgende ut i konsollen:
{1=Oransje, 2=Melon, 3=Pære, 4=Eple, 5=Bær, 6=Mango, 7=Plum}
Selv om hver verdi ble tilfeldig lagt til HashMap, vil du se fra utdataene at HashMap lagrer verdiene i stigende rekkefølge, basert på nøkkelen som er tildelt hver verdi. Dette er en funksjon som setter HashMaps foran andre datastrukturer som Matrisedatastruktur som kun støtter lineær lagring.
Hent alle data individuelt
Hvis du ønsker å hente alle dataene individuelt, kan du bruke til metode som lar deg gå gjennom HashMap og skrive ut hver verdi og dens tilhørende nøkkel. Denne metoden bruker kartgrensesnittet som HashMap-klassen implementerer.
//vis alle elementer med en iterator
for (HashMap. Inngang<Heltall, streng> frukt: fruitsMap.entrySet())
{
System.out.println("Nøkkel: " + fruit.getKey() + " Verdi: " + fruit.getValue());
}
Hvis du legger til metoden ovenfor i koden din, skrives følgende ut i konsollen din:
Nøkkel: 1 Verdi: Oransje
Nøkkel: 2 Verdi: Melon
Nøkkel: 3 Verdi: Pære
Nøkkel: 4 Verdi: Apple
Nøkkel: 5 Verdi: Bær
Nøkkel: 6 Verdi: Mango
Nøkkel: 7 Verdi: Plomme
Hent en spesifikk verdi
HashMap-klassen har en få() metode som tar en nøkkel og returnerer verdien som er tilordnet denne nøkkelen.
//hent et enkelt element
System.ute.println(fruktKart.få(4));
Kodelinjen ovenfor skriver ut følgende utdata i konsollen:
eple
Oppdatering av data i et HashMap
Etter at du har opprettet og fylt ut et HashMap-objekt, kan du bruke erstatte() metode for å oppdatere ethvert element i kartet. Replace()-metoden tar to eller tre argumenter. Den første replace()-metoden tar nøkkelen knyttet til et eksisterende element, sammen med den nye verdien du vil tilordne til den.
// erstatte et enkelt element
fruitsMap.replace (4, "Druer");
System.ute.skrive ut(fruktKart);
Ved å kjøre koden ovenfor skrives følgende objekt ut i konsollen:
{1=Oransje, 2=Melon, 3=Pære, 4=Druer, 5=Bær, 6=Mango, 7=Plum}
Som du kan se fra objektet ovenfor, kartlegger "Druer" til 4, som tidligere ble kartlagt til "Apple".
Den andre erstatte()-metoden tar nøkkelen knyttet til det eksisterende elementet, det eksisterende elementet og erstatningsverdien.
// erstatte et enkelt element
fruitsMap.replace (4, "eple", "Druer");
System.ute.skrive ut(fruktKart);
Koden ovenfor skriver ut følgende objekt i konsollen:
{1=Oransje, 2=Melon, 3=Pære, 4=Druer, 5=Bær, 6=Mango, 7=Plum}
Slette data fra et HashMap
Du kan enten slette et spesifikt element fra HashMap ved å bruke fjerne() metoden eller slett alle dataene ved å bruke klar() metode. Remove()-metoden tar enten ett eller to argumenter. Den første fjerningsmetoden tar nøkkelen knyttet til verdien du vil fjerne:
//slett et enkelt element
fruktKart.fjerne(5);
System.ute.println(fruktKart);
Koden ovenfor skriver ut følgende objekt i konsollen:
{1=Oransje, 2=Melon, 3=Pære, 4=Eple, 6=Mango, 7=Plum}
Det oppdaterte objektet viser at elementet med nøkkelverdi-paret 5 og "Bær" ikke lenger er en del av fruitsMap. Den andre remove()-metoden tar en nøkkel og verdien som den tilordnes.
//slett et enkelt element
fruitsMap.remove (5, "Bær");
System.ute.println(fruktKart);
Koden ovenfor skriver også ut følgende objekt i konsollen:
{1=Oransje, 2=Melon, 3=Pære, 4=Eple, 6=Mango, 7=Plum}
Clear()-metoden tar ingen argumenter og returnerer void.
fruktKart.klar();
System.ute.println(fruktKart);
Ved å kjøre koden ovenfor skrives følgende tomme objekt ut i konsollen:
{}
Nå kan du utføre CRUD-operasjoner på et Java HashMap
HashMaps er en av flere populære datastrukturer du trenger å kjenne til. Denne artikkelen lærer deg hvordan du utfører CRUD-operasjoner på Java HashMaps. HashMap er en veldig nyttig datastruktur, dets viktigste salgsargument er at det er en av de mest effektive datastrukturene på grunn av tilgangshastigheten. Den er imidlertid også veldig praktisk å bruke, da den tillater tilfeldig lagring.