HashMap (ali HashTable) je podatkovna struktura, ki omogoča hiter dostop do podatkov z uporabo parov ključ-vrednost. Razred Java HashMap razširja AbstractMap in implementira vmesnik Map, ki mu omogoča dostop do številnih operacij. HashMap ima dva parametra vrste – K in V, kjer K shranjuje ključe, V pa vrednosti v vsakem HashMapu.

HashMap vam omogoča preslikavo ključev na določeno vrednost in shranjevanje elementov v naključnem vrstnem redu. V tem članku se boste naučili, kako uporabljati razred HashMap v Javi za shranjevanje, pridobivanje, posodabljanje in brisanje podatkov.

Ustvarjanje Java HashMap

Razred Java HashMap ima štiri konstruktorje. Privzeti konstruktor je najbolj priljubljen, omogoča vam, da ustvarite prazen HashMap, ki bo imel privzeto zmogljivost 16.

uvozjava.util.HashMap;
javnostirazredGlavni{
javnostistatičnaprazninaglavni(Argumenti niza[]){
//ustvarjanje HashMapa
HashMap<Celo število, niz> fruitsMap = nov HashMap<Celo število, niz>();
}
}

The Java razred zgoraj uporablja privzeti konstruktor HashMap za ustvarjanje podatkovne strukture, imenovane

instagram viewer
fruitsMap. Objekt fruitsMap bo shranil podatke, ki imajo celoštevilski ključ in vrednost niza. Ker pa razred HashMap implementira vmesnik Map, lahko shrani ničelno vrednost v ključno polje, vrednostno polje ali oboje.

Shranjevanje podatkov v HashMap

Z razredom HashMap lahko izvedete več operacij. The postavi (tipka K, vrednost V) je med najbolj priljubljenimi metodami in omogoča shranjevanje podatkov s parom ključ-vrednost, kjer se vsak ključ preslika v vrednost.

uvozjava.util.HashMap;
javnostirazredGlavni{
javnostistatičnaprazninaglavni(Argumenti niza[]){
//ustvarjanje HashMapa
HashMap<Celo število, niz> fruitsMap = nov HashMap<Celo število, niz>();
//dodaj elemente v HashMap
fruitsMap.put (3,"hruška");
fruitsMap.put (6,"Mango");
fruitsMap.put (7,"Sliva");
fruitsMap.put (4,"Apple");
fruitsMap.put (1,"Oranžna");
fruitsMap.put (5,"Jagode");
fruitsMap.put (2,"Melona");
}
}

Zgornji posodobljeni razred uporablja metodo put() za dodajanje več sadja in njihovega ključa v obstoječo podatkovno strukturo fruitsMap. Pomembno je omeniti, da zgornja koda dodaja podatke na zemljevid naključno. Ta podrobnost bo uporabna, ko začnete brati podatke iz HashMapa.

Branje podatkov iz HashMap

Obstaja več načinov za branje podatkov iz HashMap. Metoda, ki jo boste uporabili, bo odvisna od tega, kako želite, da so podatki videti, ali celo od vrste podatkov, ki jih želite pridobiti.

Pridobite objekt HashMap

Če želite podatke pridobiti kot objekt, lahko preprosto dostopate do predmeta HashMap, ki je v spodnjem primeru fruitsMap.

//Prikaži vse elemente kot objekt
Sistem.ven.println(fruitsMap);

Če zgornjo vrstico kode dodate v glavni razred, se na konzoli natisne naslednji izhod:

{1=pomaranča, 2=melona, ​​3=hruška, 4=jabolko, 5=jagode, 6=mango, 7=sliva}

Čeprav je bila vsaka vrednost naključno dodana v HashMap, boste iz izhoda videli, da HashMap shranjuje vrednosti v naraščajočem vrstnem redu na podlagi ključa, dodeljenega vsaki vrednosti. To je funkcija, ki postavlja HashMaps pred druge podatkovne strukture, kot je Struktura matričnih podatkov ki podpirajo samo linearno shranjevanje.

Pridobite vse podatke posamično

Če želite pridobiti vse podatke posebej, lahko uporabite za metoda, ki vam omogoča prehod skozi HashMap in tiskanje vsake vrednosti in njenega ustreznega ključa. Ta metoda uporablja vmesnik Map, ki ga izvaja razred HashMap.

//ogled vseh elementov z iteratorjem 
za (HashMap. Vstop<Celo število, niz> sadje: fruitsMap.entrySet())
{
System.out.println("ključ: " + fruit.getKey() + " Vrednost: " + fruit.getValue());
}

Če dodate zgornjo metodo v vašo kodo, boste na vaši konzoli natisnili naslednji rezultat:

Ključ: 1 Vrednost: oranžna
Ključ: 2 Vrednost: Melona
Ključ: 3 Vrednost: hruška
Ključ: 4 Vrednost: Apple
Ključ: 5 Vrednost: jagode
Ključ: 6 Vrednost: Mango
Ključ: 7 Vrednost: Sliva

Pridobite določeno vrednost

Razred HashMap ima a dobiti () metoda, ki vzame ključ in vrne vrednost, preslikano v ta ključ.

//pridobi en element
Sistem.ven.println(fruitsMap.dobiti(4));

Zgornja vrstica kode natisne naslednji rezultat v konzoli:

Apple

Posodabljanje podatkov v HashMap

Ko ustvarite in zapolnite objekt HashMap, lahko uporabite zamenjati() za posodobitev katerega koli elementa na zemljevidu. Metoda replace() sprejme dva ali tri argumente. Prva metoda replace() prevzame ključ, povezan z obstoječim elementom, skupaj z novo vrednostjo, ki jo želite preslikati nanj.

// zamenjava posameznega elementa
fruitsMap.replace (4, "grozdje");
Sistem.ven.natisniti(fruitsMap);

Izvajanje zgornje kode natisne naslednji objekt v konzoli:

{1=pomaranča, 2=melona, ​​3=hruška, 4=grozdje, 5=jagode, 6=mango, 7=sliva}

Kot lahko vidite iz zgornjega predmeta, se »Grozdje« preslika v 4, kar je bilo prej preslikano v »Apple«.

Druga metoda replace() prevzame ključ, povezan z obstoječim elementom, obstoječim elementom in nadomestno vrednostjo.

// zamenjava posameznega elementa
fruitsMap.replace (4, "Apple", "grozdje");
Sistem.ven.natisniti(fruitsMap);

Zgornja koda natisne naslednji objekt v konzoli:

{1=pomaranča, 2=melona, ​​3=hruška, 4=grozdje, 5=jagode, 6=mango, 7=sliva}

Brisanje podatkov iz HashMap

Določen element lahko izbrišete iz svojega HashMapa z uporabo Odstrani() metodo ali izbrišite vse podatke z počisti() metoda. Metoda remove() sprejme enega ali dva argumenta. Prva metoda odstranitve vzame ključ, povezan z vrednostjo, ki jo želite odstraniti:

//izbriši en element
fruitsMap.Odstrani(5);
Sistem.ven.println(fruitsMap);

Zgornja koda natisne naslednji objekt v konzoli:

{1=pomaranča, 2=melona, ​​3=hruška, 4=jabolko, 6=mango, 7=sliva}

Posodobljeni objekt kaže, da element s parom ključ-vrednost 5 in »jagode« ni več del fruitsMap. Druga metoda remove() vzame ključ in vrednost, v katero se preslika.

//izbriši en element
fruitsMap.remove (5, "Jagode");
Sistem.ven.println(fruitsMap);

Zgornja koda natisne tudi naslednji objekt v konzoli:

{1=pomaranča, 2=melona, ​​3=hruška, 4=jabolko, 6=mango, 7=sliva}

Metoda clear() ne sprejema argumentov in vrne vrednost void.

fruitsMap.jasno();
Sistem.ven.println(fruitsMap);

Izvajanje zgornje kode natisne naslednji prazen predmet v konzoli:

{}

Zdaj lahko izvajate operacije CRUD na Java HashMap

HashMaps so ena od številnih priljubljenih podatkovnih struktur, ki jih morate poznati. Ta članek vas uči, kako izvajati operacije CRUD na Java HashMaps. HashMap je zelo uporabna podatkovna struktura, njena glavna prodajna prednost je, da je zaradi hitrosti dostopa ena najučinkovitejših podatkovnih struktur. Je pa tudi zelo priročen za uporabo, saj omogoča naključno shranjevanje.