A HashMap (vagy egy HashTable) egy olyan adatstruktúra, amely gyors hozzáférést tesz lehetővé az adatokhoz kulcs-érték párok használatával. A Java HashMap osztály kiterjeszti a AbstractMap osztályba, és megvalósítja a Map felületet, amely sok művelethez ad hozzáférést. A HashMaps két típusú paraméterrel rendelkezik – K és V, ahol K tárolja a kulcsokat, V pedig az értékeket minden HashMapben.
A HashMap lehetővé teszi, hogy a kulcsokat egy adott értékhez rendelje, és véletlenszerű sorrendben tárolja az elemeket. Ebből a cikkből megtudhatja, hogyan használhatja a Java HashMap osztályát adatok tárolására, lekérésére, frissítésére és törlésére.
Java HashMap létrehozása
A Java HashMap osztálynak négy konstruktora van. Az alapértelmezett konstruktor a legnépszerűbb, lehetővé teszi egy üres HashMap létrehozását, amelynek alapértelmezett kapacitása 16 lesz.
importJáva.util.HashMap;
nyilvánososztályFő{
nyilvánosstatikusüresfő-(String[] args){
//HashMap létrehozása
HashMap<Egész szám, karakterlánc> fruitsMap = új HashMap<Egész szám, karakterlánc>();
}
}
Az Java osztály A fenti alapértelmezett HashMap konstruktort használja a nevű adatstruktúra létrehozásához gyümölcsökTérkép. A fruitsMap objektum egész kulcsot és karakterláncot tartalmazó adatokat tárol. Mivel azonban a HashMap osztály megvalósítja a Map felületet, null értéket tárolhat a kulcsmezőben, az értékmezőben vagy mindkettőben.
Adatok tárolása HashMapben
A HashMap osztály segítségével több műveletet is végrehajthat. Az put (K kulcs, V érték) A módszer a legnépszerűbb módszerek közé tartozik, és lehetővé teszi az adatok tárolását kulcs-érték pár használatával, ahol minden kulcs egy értékre van leképezve.
importJáva.util.HashMap;
nyilvánososztályFő{
nyilvánosstatikusüresfő-(String[] args){
//HashMap létrehozása
HashMap<Egész szám, karakterlánc> fruitsMap = új HashMap<Egész szám, karakterlánc>();
//elemek hozzáadása a HashMaphez
fruitsMap.put (3,"Körte");
fruitsMap.put (6,"Mangó");
fruitsMap.put (7,"Szilva");
fruitsMap.put (4,"alma");
fruitsMap.put (1,"narancssárga");
fruitsMap.put (5,"Bogyók");
fruitsMap.put (2,"Dinnye");
}
}
A fenti frissített osztály a put() metódus használatával több gyümölcsöt és azok kulcsát ad hozzá a meglévő fruitsMap adatszerkezethez. Fontos megjegyezni, hogy a fenti kód véletlenszerűen adja hozzá az adatokat a térképhez. Ez a részlet akkor lesz hasznos, amikor elkezdi olvasni az adatokat a HashMapről.
Adatok olvasása HashMapről
Számos módja van a HashMap adatok olvasásának. A használt módszer attól függ, hogy az adatokat hogyan szeretné kinézni, vagy akár a lekérni kívánt adatok típusától is függ.
A HashMap objektum lekérése
Ha objektumként szeretné lekérni az adatokat, egyszerűen elérheti a HashMap objektumot, amely az alábbi példában a fruitsMap.
//Az összes elem megtekintése objektumként
Rendszer.ki.println(gyümölcsökTérkép);
Ha hozzáadja a fenti kódsort a Main osztályhoz, a következő kimenetet nyomtatja ki a konzolon:
{1=narancs, 2=dinnye, 3=körte, 4=alma, 5=bogyó, 6=mangó, 7=szilva}
Bár minden érték véletlenszerűen lett hozzáadva a HashMaphez, a kimenetből látni fogja, hogy a HashMap növekvő sorrendben tárolja az értékeket, az egyes értékekhez rendelt kulcsok alapján. Ez egy olyan funkció, amely a HashMaps-t más adatstruktúrák elé helyezi, mint például a Tömb adatstruktúra amelyek csak a lineáris tárolást támogatják.
Az összes adat lekérése egyenként
Ha az összes adatot egyenként szeretné lekérni, akkor használhatja a számára módszer, amely lehetővé teszi a HashMap átjárását, és az egyes értékek és a hozzá tartozó kulcsok kinyomtatását. Ez a módszer a HashMap osztály által megvalósított leképezési felületet használja.
//az összes elem megtekintése iterátorral
for (HashMap. Belépés<Egész szám, karakterlánc> gyümölcs: gyümölcsökMap.entrySet())
{
System.out.println("Kulcs: " + gyümölcs.getKey() + " Érték: " + gyümölcs.getValue());
}
Ha hozzáadja a fenti módszert a kódhoz, a következő kimenetet nyomtatja ki a konzolon:
Kulcs: 1 Érték: Narancs
Kulcs: 2 Érték: Dinnye
Kulcs: 3 Érték: Körte
Kulcs: 4 Érték: Apple
Kulcs: 5 Érték: Bogyók
Kulcs: 6 Érték: Mangó
Kulcs: 7 Érték: Szilva
Adott érték lekérése
A HashMap osztály rendelkezik a kap() metódus, amely kulcsot vesz, és visszaadja az ehhez a kulcshoz leképezett értéket.
//egyetlen elem lekérése
Rendszer.ki.println(gyümölcsökTérkép.kap(4));
A fenti kódsor a következő kimenetet írja ki a konzolon:
alma
Adatok frissítése HashMapben
Miután létrehozott és feltöltött egy HashMap objektumot, használhatja a csere() módszert a térkép bármely elemének frissítésére. A helyettesítő() metódus két vagy három argumentumot igényel. Az első csere() metódus a meglévő elemhez társított kulcsot veszi a hozzá rendelni kívánt új értékkel együtt.
// egyetlen elem cseréje
fruitsMap.replace (4, "Szőlő");
Rendszer.ki.nyomtatás(gyümölcsökTérkép);
A fenti kód végrehajtása a következő objektumot nyomtatja ki a konzolon:
{1=narancs, 2=dinnye, 3=körte, 4=szőlő, 5=bogyó, 6=mangó, 7=szilva}
Amint az a fenti objektumból látható, a „Szőlő” 4-re van leképezve, amely korábban az „Apple”-ra volt leképezve.
A második helyettesítő() metódus a meglévő elemhez, a meglévő elemhez és a csereértékhez tartozó kulcsot veszi fel.
// egyetlen elem cseréje
fruitsMap.replace (4, "alma", "Szőlő");
Rendszer.ki.nyomtatás(gyümölcsökTérkép);
A fenti kód a következő objektumot nyomtatja ki a konzolban:
{1=narancs, 2=dinnye, 3=körte, 4=szőlő, 5=bogyó, 6=mangó, 7=szilva}
Adatok törlése HashMapről
Egy adott elemet törölhet a HashMap-ről a következővel: eltávolítás() módszerrel, vagy törölje az összes adatot a egyértelmű() módszer. A remove() metódus egy vagy két argumentumot használ. Az első eltávolítási módszer az eltávolítani kívánt értékhez tartozó kulcsot veszi:
//egyetlen elem törlése
gyümölcsökTérkép.eltávolítani(5);
Rendszer.ki.println(gyümölcsökTérkép);
A fenti kód a következő objektumot nyomtatja ki a konzolban:
{1=narancs, 2=dinnye, 3=körte, 4=alma, 6=mangó, 7=szilva}
A frissített objektum azt mutatja, hogy az 5-ös kulcs-érték páros és a „Bogyók” elem már nem része a fruitsMap-nek. A második remove() metódus egy kulcsot és azt az értéket veszi fel, amelyre leképez.
//egyetlen elem törlése
fruitsMap.remove (5, "Bogyók");
Rendszer.ki.println(gyümölcsökTérkép);
A fenti kód a következő objektumot is kiírja a konzolban:
{1=narancs, 2=dinnye, 3=körte, 4=alma, 6=mangó, 7=szilva}
A clear() metódus nem vesz fel argumentumokat, és érvénytelent ad vissza.
gyümölcsökTérkép.egyértelmű();
Rendszer.ki.println(gyümölcsökTérkép);
A fenti kód végrehajtása a következő üres objektumot nyomtatja ki a konzolon:
{}
Mostantól CRUD-műveleteket hajthat végre egy Java HashMap-en
A HashMaps egyike a számos népszerű adatstruktúra közül, amelyeket ismernie kell. Ebből a cikkből megtudhatja, hogyan hajthat végre CRUD-műveleteket Java HashMaps-en. A HashMap egy nagyon hasznos adatstruktúra, fő értékesítési pontja, hogy hozzáférési sebességének köszönhetően az egyik leghatékonyabb adatstruktúra. Használata azonban nagyon kényelmes is, mivel véletlenszerű tárolást tesz lehetővé.