Een HashMap (of een HashTable) is een gegevensstructuur die snelle toegang tot gegevens mogelijk maakt met behulp van sleutel-waardeparen. De Java HashMap-klasse breidt de AbstracteKaart class en implementeert de kaartinterface, die het toegang geeft tot veel bewerkingen. HashMaps hebben twee typeparameters: K en V, waarbij K de sleutels opslaat en V de waarden opslaat in elke HashMap.
Met de HashMap kunt u sleutels toewijzen aan een specifieke waarde en items in willekeurige volgorde opslaan. In dit artikel leert u hoe u de HashMap-klasse van Java kunt gebruiken om gegevens op te slaan, op te halen, bij te werken en te verwijderen.
Een Java HashMap maken
De Java HashMap-klasse heeft vier constructors. De standaardconstructor is de meest populaire, hiermee kunt u een lege HashMap maken met een standaardcapaciteit van 16.
importerenJava.util.Hash kaart;
openbaarklasHoofd{
openbaarstatischleegtehoofd(String[] argumenten){
// een HashMap maken
Hash kaart<geheel getal, tekenreeks> fruitsMap = nieuwe HashMap<geheel getal, tekenreeks>();
}
}
De Java-klasse hierboven gebruikt de standaard HashMap-constructor om een gegevensstructuur te maken met de naam fruitkaart. Het fruitsMap-object slaat gegevens op met een integer-sleutel en een tekenreekswaarde. Omdat de HashMap-klasse de Map-interface implementeert, kan deze echter een null-waarde opslaan in het sleutelveld, het waardeveld of beide.
Gegevens opslaan in een HashMap
U kunt verschillende bewerkingen uitvoeren met behulp van de HashMap-klasse. De put (K-toets, V-waarde) methode is een van de meest populaire methoden en stelt u in staat om gegevens op te slaan met behulp van een sleutel-waardepaar, waarbij elke sleutel is toegewezen aan een waarde.
importerenJava.util.Hash kaart;
openbaarklasHoofd{
openbaarstatischleegtehoofd(String[] argumenten){
// een HashMap maken
Hash kaart<geheel getal, tekenreeks> fruitsMap = nieuwe HashMap<geheel getal, tekenreeks>();
// voeg items toe aan HashMap
fruitMap.put (3,"Peer");
fruitMap.put (6,"Mango");
fruitMap.put (7,"Pruim");
fruitMap.put (4,"Appel");
fruitMap.put (1,"Oranje");
fruitMap.put (5,"Bessen");
fruitMap.put (2,"Meloen");
}
}
De bijgewerkte klasse hierboven gebruikt de methode put() om verschillende vruchten en hun sleutel toe te voegen aan de bestaande fruitsMap-gegevensstructuur. Het is belangrijk op te merken dat de bovenstaande code de gegevens willekeurig aan de kaart toevoegt. Dit detail wordt handig wanneer u de gegevens van de HashMap begint te lezen.
Gegevens uit een HashMap lezen
Er zijn verschillende manieren om gegevens uit een HashMap te lezen. De methode die u gebruikt, hangt af van hoe u wilt dat de gegevens eruitzien of zelfs van het type gegevens dat u wilt ophalen.
Het HashMap-object ophalen
Als u de gegevens als een object wilt ophalen, kunt u eenvoudig toegang krijgen tot het HashMap-object, dat in het onderstaande voorbeeld fruitsMap is.
//Bekijk alle items als een object
Systeem.uit.println(fruitkaart);
Door de bovenstaande regel code toe te voegen aan de klasse Main, wordt de volgende uitvoer in de console afgedrukt:
{1=Oranje, 2=Melon, 3=Peer, 4=Appel, 5=Bessen, 6=Mango, 7=Pruim}
Hoewel elke waarde willekeurig aan de HashMap is toegevoegd, ziet u in de uitvoer dat HashMap de waarden in oplopende volgorde opslaat, gebaseerd op de sleutel die aan elke waarde is toegewezen. Dit is een functie die HashMaps een voorsprong geeft op andere datastructuren zoals de Array datastructuur die alleen lineaire opslag ondersteunen.
Alle gegevens afzonderlijk ophalen
Als u alle gegevens afzonderlijk wilt ophalen, kunt u de voor methode waarmee u door de HashMap kunt bladeren en elke waarde en de bijbehorende sleutel kunt afdrukken. Deze methode maakt gebruik van de kaartinterface die de klasse HashMap implementeert.
// bekijk alle items met een iterator
voor (HashMap. binnenkomst<geheel getal, tekenreeks> fruit: fruitsMap.entrySet())
{
Systeem.uit.println("Sleutel: " + fruit.getKey() + " Waarde: " + fruit.getValue());
}
Als u de bovenstaande methode aan uw code toevoegt, wordt de volgende uitvoer in uw console afgedrukt:
Sleutel: 1 Waarde: Oranje
Sleutel: 2 Waarde: Meloen
Sleutel: 3 Waarde: Peer
Sleutel: 4 Waarde: Appel
Sleutel: 5 Waarde: Bessen
Sleutel: 6 Waarde: Mango
Sleutel: 7 Waarde: Pruim
Een specifieke waarde ophalen
De klasse HashMap heeft een krijgen() methode die een sleutel nodig heeft en de waarde retourneert die aan deze sleutel is toegewezen.
// haal een enkel item op
Systeem.uit.println(fruitkaart.krijgen(4));
De bovenstaande regel code drukt de volgende uitvoer af in de console:
Appel
Gegevens bijwerken in een HashMap
Nadat u een HashMap-object hebt gemaakt en ingevuld, kunt u de vervangen() methode om een item op de kaart bij te werken. De methode Replace() heeft twee of drie argumenten. De eerste methode Replace() gebruikt de sleutel die is gekoppeld aan een bestaand item, samen met de nieuwe waarde die u eraan wilt toewijzen.
// vervang een enkel item
fruitMap.replace (4, "Druiven");
Systeem.uit.afdrukken(fruitkaart);
Als u de bovenstaande code uitvoert, wordt het volgende object in de console afgedrukt:
{1=Oranje, 2=Melon, 3=Peer, 4=Druiven, 5=Bessen, 6=Mango, 7=Pruim}
Zoals je kunt zien aan het object hierboven, wordt "Druiven" toegewezen aan 4, die eerder was toegewezen aan "Apple".
De tweede methode Replace() gebruikt de sleutel die is gekoppeld aan het bestaande item, het bestaande item en de vervangingswaarde.
// vervang een enkel item
fruitMap.replace (4, "Appel", "Druiven");
Systeem.uit.afdrukken(fruitkaart);
De bovenstaande code drukt het volgende object af in de console:
{1=Oranje, 2=Melon, 3=Peer, 4=Druiven, 5=Bessen, 6=Mango, 7=Pruim}
Gegevens verwijderen uit een HashMap
U kunt een specifiek item uit uw HashMap verwijderen met behulp van de verwijderen() methode of verwijder alle gegevens met de Doorzichtig() methode. De methode remove() heeft één of twee argumenten. De eerste verwijdermethode neemt de sleutel die is gekoppeld aan de waarde die u wilt verwijderen:
// verwijder een enkel item
fruitkaart.verwijderen(5);
Systeem.uit.println(fruitkaart);
De bovenstaande code drukt het volgende object af in de console:
{1=Oranje, 2=Meloen, 3=Peer, 4=Appel, 6=Mango, 7=Pruim}
Het bijgewerkte object laat zien dat het item met het sleutel-waardepaar 5 en "Berries" niet langer deel uitmaakt van de fruitsMap. De tweede methode remove() neemt een sleutel en de waarde waaraan deze is toegewezen.
// verwijder een enkel item
fruitMap.verwijder (5, "Bessen");
Systeem.uit.println(fruitkaart);
De bovenstaande code drukt ook het volgende object af in de console:
{1=Oranje, 2=Meloen, 3=Peer, 4=Appel, 6=Mango, 7=Pruim}
De methode clear() heeft geen argumenten en retourneert void.
fruitkaart.Doorzichtig();
Systeem.uit.println(fruitkaart);
Als u de bovenstaande code uitvoert, wordt het volgende lege object in de console afgedrukt:
{}
Nu kunt u CRUD-bewerkingen uitvoeren op een Java HashMap
HashMaps zijn een van de vele populaire gegevensstructuren die u moet kennen. Dit artikel leert u hoe u CRUD-bewerkingen uitvoert op Java HashMaps. De HashMap is een zeer nuttige datastructuur, het belangrijkste verkoopargument is dat het een van de meest efficiënte datastructuren is, vanwege de toegangssnelheid. Het is echter ook erg handig in gebruik, omdat het willekeurige opslag mogelijk maakt.