HashMap (ili HashTable) je struktura podataka koja omogućuje brzi pristup podacima pomoću parova ključ-vrijednost. Java HashMap klasa proširuje SažetakMap klase i implementira sučelje Map, koje mu daje pristup velikom broju operacija. HashMap ima dva parametra tipa — K i V, gdje K pohranjuje ključeve, a V pohranjuje vrijednosti u svakom HashMapu.
HashMap vam omogućuje mapiranje ključeva na određenu vrijednost i pohranjivanje stavki nasumičnim redoslijedom. U ovom ćete članku naučiti kako koristiti Java HashMap klasu za pohranjivanje, dohvaćanje, ažuriranje i brisanje podataka.
Stvaranje Java HashMapa
Java HashMap klasa ima četiri konstruktora. Zadani konstruktor je najpopularniji, omogućuje vam stvaranje praznog HashMapa koji će imati zadani kapacitet od 16.
uvozJava.util.HashMap;
javnostrazredaGlavni{
javnoststatičkiponištitiglavni(String[] argumenti){
//stvaranje HashMapa
HashMap<Cijeli broj, niz> fruitsMap = novi HashMap<Cijeli broj, niz>();
}
}
The Java klasa gore koristi zadani HashMap konstruktor za stvaranje podatkovne strukture pod nazivom
fruitsMap. Objekt fruitsMap pohranit će podatke koji imaju cjelobrojni ključ i vrijednost niza. Međutim, budući da klasa HashMap implementira sučelje Map, može pohraniti nultu vrijednost u polje ključa, polje vrijednosti ili oboje.Pohranjivanje podataka u HashMap
Možete izvesti nekoliko operacija pomoću klase HashMap. The stavi (K ključ, V vrijednost) metoda je među najpopularnijim metodama i omogućuje vam pohranu podataka pomoću para ključ-vrijednost, gdje se svaki ključ preslikava u vrijednost.
uvozJava.util.HashMap;
javnostrazredaGlavni{
javnoststatičkiponištitiglavni(String[] argumenti){
//stvaranje HashMapa
HashMap<Cijeli broj, niz> fruitsMap = novi HashMap<Cijeli broj, niz>();
//dodavanje stavki u HashMap
fruitsMap.put (3,"Kruška");
fruitsMap.put (6,"Mango");
fruitsMap.put (7,"Šljiva");
fruitsMap.put (4,"Jabuka");
fruitsMap.put (1,"naranča");
fruitsMap.put (5,"Bobice");
fruitsMap.put (2,"Dinja");
}
}
Gornja ažurirana klasa koristi metodu put() za dodavanje nekoliko voća i njihov ključ u postojeću strukturu podataka fruitsMap. Važno je napomenuti da gornji kod dodaje podatke na kartu nasumično. Ovaj detalj će postati koristan kada počnete čitati podatke iz HashMapa.
Čitanje podataka iz HashMapa
Postoji nekoliko načina za čitanje podataka iz HashMapa. Metoda koju ćete koristiti ovisit će o tome kako želite da podaci izgledaju ili čak o vrsti podataka koje želite dohvatiti.
Dohvatite objekt HashMap
Ako želite dohvatiti podatke kao objekt, možete jednostavno pristupiti objektu HashMap, koji je u donjem primjeru fruitsMap.
//Prikaži sve stavke kao objekt
Sustav.vani.println(fruitsMap);
Dodavanjem gornjeg retka koda u glavnu klasu ispisuje se sljedeći izlaz na konzoli:
{1=Naranča, 2=dinja, 3=kruška, 4=jabuka, 5=bobičasto voće, 6=mango, 7=šljiva}
Iako je svaka vrijednost nasumično dodana u HashMap, iz izlaza ćete vidjeti da HashMap pohranjuje vrijednosti uzlaznim redoslijedom, na temelju ključa dodijeljenog svakoj vrijednosti. Ovo je značajka koja stavlja HashMaps ispred drugih struktura podataka kao što je Struktura podataka niza koji podržavaju samo linearnu pohranu.
Dohvatite sve podatke pojedinačno
Ako želite dohvatiti sve podatke pojedinačno, tada možete koristiti za metoda koja vam omogućuje prolazak kroz HashMap i ispis svake vrijednosti i njezinog odgovarajućeg ključa. Ova metoda koristi sučelje karte koje implementira klasa HashMap.
//pogledajte sve stavke s iteratorom
za (HashMap. Ulazak<Cijeli broj, niz> voće: fruitsMap.entrySet())
{
System.out.println("Ključ: " + voće.getKey() + " Vrijednost: " + voće.getValue());
}
Dodavanje gornje metode vašem kodu ispisat će sljedeći izlaz na vašoj konzoli:
Ključ: 1 Vrijednost: Narančasto
Ključ: 2 Vrijednost: dinja
Ključ: 3 Vrijednost: Kruška
Ključ: 4 Vrijednost: Apple
Ključ: 5 Vrijednost: Bobice
Ključ: 6 Vrijednost: Mango
Ključ: 7 Vrijednost: Šljiva
Dohvaćanje određene vrijednosti
Klasa HashMap ima dobiti() metoda koja uzima ključ i vraća vrijednost preslikanu na ovaj ključ.
//dohvati jednu stavku
Sustav.vani.println(fruitsMap.dobiti(4));
Redak koda iznad ispisuje sljedeći izlaz u konzoli:
Jabuka
Ažuriranje podataka u HashMapu
Nakon što stvorite i popunite HashMap objekt, možete koristiti zamijeniti() način ažuriranja bilo koje stavke na karti. Metoda replace() uzima dva ili tri argumenta. Prva replace() metoda uzima ključ povezan s postojećom stavkom, zajedno s novom vrijednošću koju želite preslikati na nju.
// zamijeniti jednu stavku
fruitsMap.replace (4, "Grožđe");
Sustav.vani.ispisati(fruitsMap);
Izvršavanjem gornjeg koda ispisuje se sljedeći objekt u konzoli:
{1=Naranča, 2=dinja, 3=kruška, 4=grožđe, 5=bobičasto voće, 6=mango, 7=šljiva}
Kao što možete vidjeti iz gornjeg objekta, "Grožđe" se preslikava na 4, što je prethodno preslikano na "Jabuka".
Druga replace() metoda uzima ključ povezan s postojećom stavkom, postojećom stavkom i zamjenskom vrijednošću.
// zamijeniti jednu stavku
fruitsMap.replace (4, "Jabuka", "Grožđe");
Sustav.vani.ispisati(fruitsMap);
Gornji kod ispisuje sljedeći objekt u konzoli:
{1=Naranča, 2=dinja, 3=kruška, 4=grožđe, 5=bobičasto voće, 6=mango, 7=šljiva}
Brisanje podataka iz HashMapa
Možete ili izbrisati određenu stavku s vašeg HashMapa pomoću ukloniti() ili obrišite sve podatke pomoću čisto() metoda. Metoda remove() uzima jedan ili dva argumenta. Prva metoda uklanjanja uzima ključ povezan s vrijednošću koju želite ukloniti:
//brisanje jedne stavke
fruitsMap.ukloniti(5);
Sustav.vani.println(fruitsMap);
Gornji kod ispisuje sljedeći objekt u konzoli:
{1=Naranča, 2=dinja, 3=kruška, 4=jabuka, 6=mango, 7=šljiva}
Ažurirani objekt pokazuje da stavka s parom ključ-vrijednost 5 i "Bobice" više nije dio fruitsMapa. Druga metoda remove() uzima ključ i vrijednost na koju se preslikava.
//brisanje jedne stavke
fruitsMap.remove (5, "Bobice");
Sustav.vani.println(fruitsMap);
Gornji kod također ispisuje sljedeći objekt u konzoli:
{1=Naranča, 2=dinja, 3=kruška, 4=jabuka, 6=mango, 7=šljiva}
Metoda clear() ne uzima argumente i vraća void.
fruitsMap.čisto();
Sustav.vani.println(fruitsMap);
Izvršavanje gornjeg koda ispisuje sljedeći prazan objekt u konzoli:
{}
Sada možete izvoditi CRUD operacije na Java HashMap
HashMaps jedna je od nekoliko popularnih podatkovnih struktura koje trebate poznavati. Ovaj članak vas uči kako izvoditi CRUD operacije na Java HashMaps. HashMap je vrlo korisna podatkovna struktura, njena glavna prodajna prednost je da je jedna od najučinkovitijih podatkovnih struktura, zbog svoje brzine pristupa. Međutim, također je vrlo praktičan za korištenje jer omogućuje nasumično pohranjivanje.