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ály{
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>();
}
}
instagram viewer

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ály{
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é.