HashMap (tai HashTable) on tietorakenne, joka mahdollistaa nopean pääsyn tietoihin käyttämällä avainarvopareja. Java HashMap -luokka laajentaa AbstractMap luokkaan ja toteuttaa Map-käyttöliittymän, joka antaa sille pääsyn moniin toimiin. HashMapsissa on kaksi tyyppiparametria – K ja V, joissa K tallentaa avaimet ja V arvot jokaiseen HashMapiin.
HashMapin avulla voit kartoittaa avaimet tiettyyn arvoon ja tallentaa kohteita satunnaisessa järjestyksessä. Tässä artikkelissa opit käyttämään Java HashMap -luokkaa tietojen tallentamiseen, hakemiseen, päivittämiseen ja poistamiseen.
Java HashMapin luominen
Java HashMap -luokassa on neljä konstruktoria. Oletuskonstruktori on suosituin, sen avulla voit luoda tyhjän HashMapin, jonka oletuskapasiteetti on 16.
tuontijava.util.HashMap;
julkinenluokkaaMain{
julkinenstaattinenmitätönpää(merkkijono[] args){
//HashMapin luominen
HashMap<Kokonaisluku, merkkijono> fruitsMap = uusi HashMap<Kokonaisluku, merkkijono>();
}
}
The Java luokka yllä käyttää oletusarvoista HashMap-konstruktoria luodakseen tietorakenteen nimeltä
hedelmätMap. FruitsMap-objekti tallentaa tiedot, joissa on kokonaislukuavain ja merkkijonoarvo. Koska HashMap-luokka toteuttaa Map-rajapinnan, se voi kuitenkin tallentaa nolla-arvon joko avainkenttään, arvokenttään tai molempiin.Tietojen tallentaminen HashMapiin
Voit suorittaa useita toimintoja käyttämällä HashMap-luokkaa. The laittaa (K-avain, V-arvo) menetelmä on suosituimpia menetelmiään, ja sen avulla voit tallentaa tietoja käyttämällä avain-arvo-paria, jossa jokainen avain vastaa arvoon.
tuontijava.util.HashMap;
julkinenluokkaaMain{
julkinenstaattinenmitätönpää(merkkijono[] args){
//HashMapin luominen
HashMap<Kokonaisluku, merkkijono> fruitsMap = uusi HashMap<Kokonaisluku, merkkijono>();
//lisää kohteita HashMapiin
fruitsMap.put (3,"Päärynä");
fruitsMap.put (6,"Mango");
fruitsMap.put (7,"Luumu");
fruitsMap.put (4,"Omena");
fruitsMap.put (1,"Oranssi");
fruitsMap.put (5,"Marjat");
fruitsMap.put (2,"Meloni");
}
}
Yllä oleva päivitetty luokka käyttää put()-menetelmää useiden hedelmien ja niiden avaimen lisäämiseen olemassa olevaan fruitsMap-tietorakenteeseen. On tärkeää huomata, että yllä oleva koodi lisää tiedot karttaan satunnaisesti. Tästä yksityiskohdasta on hyötyä, kun aloitat tietojen lukemisen HashMapista.
Tietojen lukeminen HashMapista
On olemassa useita tapoja lukea tietoja HashMapista. Käyttämäsi menetelmä riippuu siitä, miltä haluat tietojen näyttävän tai jopa haettavien tietojen tyypistä.
Hae HashMap-objekti
Jos haluat hakea tiedot objektina, voit käyttää HashMap-objektia, joka alla olevassa esimerkissä on fruitsMap.
//Näytä kaikki kohteet objektina
Järjestelmä.ulos.println(hedelmätMap);
Yllä olevan koodirivin lisääminen Main-luokkaan tulostaa seuraavan tulosteen konsoliin:
{1=appelsiini, 2=meloni, 3=päärynä, 4=omena, 5=marjat, 6=mango, 7=luumu}
Vaikka jokainen arvo lisättiin satunnaisesti HashMapiin, tuloksesta näet, että HashMap tallentaa arvot nousevassa järjestyksessä kullekin arvolle määritetyn avaimen perusteella. Tämä on ominaisuus, joka asettaa HashMapsin muiden tietorakenteiden, kuten Taulukon tietorakenne jotka tukevat vain lineaarista tallennusta.
Hae kaikki tiedot yksitellen
Jos haluat hakea kaikki tiedot yksitellen, voit käyttää varten menetelmä, jonka avulla voit kulkea HashMapin läpi ja tulostaa jokaisen arvon ja sitä vastaavan avaimen. Tämä menetelmä käyttää Map-käyttöliittymää, jonka HashMap-luokka toteuttaa.
//tarkastele kaikkia kohteita iteraattorilla
varten (HashMap. Sisäänpääsy<Kokonaisluku, merkkijono> hedelmät: hedelmätMap.entrySet())
{
System.out.println("Avain: " + hedelmä.getKey() + " Arvo: " + hedelmä.getValue());
}
Yllä olevan menetelmän lisääminen koodiisi tulostaa seuraavan tulosteen konsoliisi:
Avain: 1 Arvo: Oranssi
Avain: 2 Arvo: Meloni
Avain: 3 Arvo: Päärynä
Avain: 4 Arvo: Apple
Avain: 5 Arvo: Marjat
Avain: 6 Arvo: Mango
Avain: 7 Arvo: Luumu
Hae tietty arvo
HashMap-luokassa on a saada() menetelmä, joka ottaa avaimen ja palauttaa tähän avaimeen yhdistetyn arvon.
//hae yksittäinen kohde
Järjestelmä.ulos.println(hedelmätMap.saada(4));
Yllä oleva koodirivi tulostaa seuraavan tulosteen konsoliin:
Omena
Tietojen päivittäminen HashMapissa
Kun olet luonut ja täyttänyt HashMap-objektin, voit käyttää korvata() tapa päivittää minkä tahansa kartan kohteen. Replace()-menetelmä vaatii kaksi tai kolme argumenttia. Ensimmäinen korvaa()-menetelmä ottaa olemassa olevaan kohteeseen liittyvän avaimen sekä uuden arvon, jonka haluat yhdistää siihen.
// Korvaa yksi kohde
fruitsMap.replace (4, "Rypäleet");
Järjestelmä.ulos.Tulosta(hedelmätMap);
Yllä olevan koodin suorittaminen tulostaa seuraavan objektin konsoliin:
{1=appelsiini, 2=meloni, 3=päärynä, 4=rypäleet, 5=marjat, 6=mango, 7=luumu}
Kuten yllä olevasta kohteesta näet, "Grapes" liittyy 4:ään, joka aiemmin oli kartoitettu "Apple".
Toinen korvaa()-menetelmä ottaa avaimen, joka liittyy olemassa olevaan nimikkeeseen, olemassa olevaan nimikkeeseen ja korvausarvoon.
// Korvaa yksi kohde
fruitsMap.replace (4, "Omena", "Rypäleet");
Järjestelmä.ulos.Tulosta(hedelmätMap);
Yllä oleva koodi tulostaa seuraavan objektin konsoliin:
{1=appelsiini, 2=meloni, 3=päärynä, 4=rypäleet, 5=marjat, 6=mango, 7=luumu}
Tietojen poistaminen HashMapista
Voit joko poistaa tietyn kohteen HashMapista käyttämällä Poista() menetelmää tai poista kaikki tiedot käyttämällä asia selvä() menetelmä. Remove()-menetelmä ottaa joko yhden tai kaksi argumenttia. Ensimmäinen poistotapa ottaa poistettavaan arvoon liittyvän avaimen:
//poistaa yksittäinen kohde
hedelmätMap.Poista(5);
Järjestelmä.ulos.println(hedelmätMap);
Yllä oleva koodi tulostaa seuraavan objektin konsoliin:
{1=appelsiini, 2=meloni, 3=päärynä, 4=omena, 6=mango, 7=luumu}
Päivitetty objekti näyttää, että kohde, jonka avainarvopari on 5 ja "Marjat", ei ole enää osa fruitsMapia. Toinen remove()-menetelmä ottaa avaimen ja arvon, johon se on kartoitettu.
//poistaa yksittäinen kohde
fruitsMap.remove (5, "Marjat");
Järjestelmä.ulos.println(hedelmätMap);
Yllä oleva koodi tulostaa myös seuraavan objektin konsoliin:
{1=appelsiini, 2=meloni, 3=päärynä, 4=omena, 6=mango, 7=luumu}
Clear()-metodi ei ota argumentteja ja palauttaa void.
hedelmätMap.asia selvä();
Järjestelmä.ulos.println(hedelmätMap);
Yllä olevan koodin suorittaminen tulostaa seuraavan tyhjän objektin konsoliin:
{}
Nyt voit suorittaa CRUD-toimintoja Java HashMapissa
HashMaps on yksi monista suosituista tietorakenteista, jotka sinun on tiedettävä. Tämä artikkeli opettaa sinulle, kuinka suorittaa CRUD-toimintoja Java HashMapsissa. HashMap on erittäin hyödyllinen tietorakenne, sen tärkein myyntivaltti on, että se on yksi tehokkaimmista tietorakenteista pääsynopeudensa ansiosta. Se on kuitenkin myös erittäin kätevä käyttää, koska se mahdollistaa satunnaisen tallennuksen.