En HashMap (eller en HashTable) är en datastruktur som möjliggör snabb åtkomst till data med hjälp av nyckel-värdepar. Java HashMap-klassen utökar Abstrakt karta klass och implementerar Map-gränssnittet, vilket ger den tillgång till många operationer. HashMaps har två typparametrar – K och V, där K lagrar nycklarna och V lagrar värdena i varje HashMap.

HashMap låter dig mappa nycklar till ett specifikt värde och lagra objekt i slumpmässig ordning. I den här artikeln kommer du att lära dig hur du använder Javas HashMap-klass för att lagra, hämta, uppdatera och ta bort data.

Skapa en Java HashMap

Java HashMap-klassen har fyra konstruktörer. Standardkonstruktorn är den mest populära, den låter dig skapa en tom HashMap som har en standardkapacitet på 16.

importerajava.util.HashMap;
offentligklassMain{
offentligstatisktomhethuvud(String[] args){
//skapa en HashMap
HashMap<Heltal, sträng> fruitsMap = ny HashMap<Heltal, sträng>();
}
}

De Java klass ovan använder standard HashMap-konstruktorn för att skapa en datastruktur som kallas

instagram viewer
fruktkarta. Objektet fruitsMap kommer att lagra data som har en heltalsnyckel och ett strängvärde. Men eftersom HashMap-klassen implementerar Map-gränssnittet, kan den lagra ett nollvärde i antingen nyckelfältet, värdefältet eller båda.

Lagra data i en HashMap

Du kan utföra flera operationer med HashMap-klassen. De put (K-nyckel, V-värde) Metoden är bland dess mest populära metoder, och den låter dig lagra data med hjälp av ett nyckel-värdepar, där varje nyckel mappas till ett värde.

importerajava.util.HashMap;
offentligklassMain{
offentligstatisktomhethuvud(String[] args){
//skapa en HashMap
HashMap<Heltal, sträng> fruitsMap = ny HashMap<Heltal, sträng>();
//lägg till objekt till HashMap
fruitsMap.put (3,"Päron");
fruitsMap.put (6,"Mango");
fruitsMap.put (7,"Plommon");
fruitsMap.put (4,"Äpple");
fruitsMap.put (1,"Orange");
fruitsMap.put (5,"Bär");
fruitsMap.put (2,"Melon");
}
}

Den uppdaterade klassen ovan använder put()-metoden för att lägga till flera frukter och deras nyckel till den befintliga fruitsMap-datastrukturen. Det är viktigt att notera att koden ovan lägger till data till kartan slumpmässigt. Denna detalj kommer att bli användbar när du börjar läsa data från HashMap.

Läsa data från en HashMap

Det finns flera sätt att läsa data från en HashMap. Metoden du använder beror på hur du vill att data ska se ut eller till och med vilken typ av data du vill hämta.

Hämta HashMap-objektet

Om du vill hämta data som ett objekt kan du helt enkelt komma åt HashMap-objektet, som i exemplet nedan är fruitsMap.

//Visa alla objekt som ett objekt
Systemet.ut.println(fruktkarta);

Genom att lägga till kodraden ovan i huvudklassen, skrivs följande ut i konsolen:

{1=Apelsin, 2=Melon, 3=Päron, 4=Äpple, 5=Bär, 6=Mango, 7=Plum}

Även om varje värde lades till slumpmässigt till HashMap, från utdata kommer du att se att HashMap lagrar värdena i stigande ordning, baserat på nyckeln som tilldelats varje värde. Detta är en funktion som sätter HashMaps före andra datastrukturer såsom Array datastruktur som endast stöder linjär lagring.

Hämta alla data individuellt

Om du vill hämta all data individuellt kan du använda för metod som låter dig gå igenom HashMap och skriva ut varje värde och dess motsvarande nyckel. Denna metod använder Map-gränssnittet som HashMap-klassen implementerar.

//visa alla objekt med en iterator 
för (HashMap. Inträde<Heltal, sträng> frukt: fruitsMap.entrySet())
{
System.out.println("Nyckel: " + fruit.getKey() + " Värde: " + fruit.getValue());
}

Om du lägger till metoden ovan i din kod kommer följande utdata att skrivas ut i din konsol:

Nyckel: 1 Värde: Orange
Nyckel: 2 Värde: Melon
Nyckel: 3 Värde: Päron
Nyckel: 4 Värde: Apple
Nyckel: 5 Värde: Bär
Nyckel: 6 Värde: Mango
Nyckel: 7 Värde: Plommon

Hämta ett specifikt värde

HashMap-klassen har en skaffa sig() metod som tar en nyckel och returnerar värdet som är mappat till denna nyckel.

//hämta ett enda objekt
Systemet.ut.println(fruktkarta.skaffa sig(4));

Kodraden ovan skriver ut följande utdata i konsolen:

Äpple

Uppdatera data i en HashMap

När du har skapat och fyllt i ett HashMap-objekt kan du använda byta ut() metod för att uppdatera valfritt objekt i kartan. Metoden replace() tar två eller tre argument. Den första replace()-metoden tar nyckeln som är associerad med ett befintligt objekt, tillsammans med det nya värdet du vill mappa till det.

// ersätt ett enda objekt
fruitsMap.replace (4, "Vindruvor");
Systemet.ut.skriva ut(fruktkarta);

Genom att köra koden ovan skrivs följande objekt ut i konsolen:

{1=Apelsin, 2=Melon, 3=Päron, 4=Druvor, 5=Bär, 6=Mango, 7=Plum}

Som du kan se från objektet ovan, mappar "Druvor" till 4, som tidigare mappats till "Apple".

Den andra metoden replace() tar nyckeln som är associerad med det befintliga objektet, det befintliga objektet och ersättningsvärdet.

// ersätt ett enda objekt
fruitsMap.replace (4, "Äpple", "Vindruvor");
Systemet.ut.skriva ut(fruktkarta);

Koden ovan skriver ut följande objekt i konsolen:

{1=Apelsin, 2=Melon, 3=Päron, 4=Druvor, 5=Bär, 6=Mango, 7=Plum}

Ta bort data från en HashMap

Du kan antingen ta bort ett specifikt objekt från din HashMap med hjälp av ta bort() metod eller radera all data med hjälp av klar() metod. Metoden remove() tar antingen ett eller två argument. Den första borttagningsmetoden tar nyckeln som är kopplad till värdet du vill ta bort:

//ta bort ett enda objekt
fruktkarta.ta bort(5);
Systemet.ut.println(fruktkarta);

Koden ovan skriver ut följande objekt i konsolen:

{1=Apelsin, 2=Melon, 3=Päron, 4=Äpple, 6=Mango, 7=Plum}

Det uppdaterade objektet visar att objektet med nyckel-värdeparet 5 och "Berries" inte längre är en del av fruitsMap. Den andra metoden remove() tar en nyckel och värdet som den mappas till.

//ta bort ett enda objekt
fruitsMap.remove (5, "Bär");
Systemet.ut.println(fruktkarta);

Koden ovan skriver även ut följande objekt i konsolen:

{1=Apelsin, 2=Melon, 3=Päron, 4=Äpple, 6=Mango, 7=Plum}

Metoden clear() tar inga argument och returnerar void.

fruktkarta.klar();
Systemet.ut.println(fruktkarta);

Genom att köra koden ovan skrivs följande tomma objekt ut i konsolen:

{}

Nu kan du utföra CRUD-operationer på en Java HashMap

HashMaps är en av flera populära datastrukturer som du behöver känna till. Den här artikeln lär dig hur du utför CRUD-operationer på Java HashMaps. HashMap är en mycket användbar datastruktur, dess främsta försäljningsargument är att det är en av de mest effektiva datastrukturerna, på grund av dess åtkomsthastighet. Den är dock också väldigt bekväm att använda, eftersom den tillåter slumpmässig lagring.