Mikä on Java HashMap ja miten sitä käytetään?
Java-kielessä HashMap-luokka mahdollistaa tietojen tallentamisen avain-arvo-pareina. Tämä helpottaa luettelon hakua ja hallintaa, mutta tarjoaa myös lukuisia käyttövaihtoehtoja. Käymme tässä läpi tärkeimmät menetelmät.
Mitä ovat HashMaps Java-kielessä?
Tietojen tallentamiseen ja hakemiseen on useita eri tapoja. Paras tallennustapa riippuu siitä, miten aiot käyttää tietoja. Useissa tapauksissa Java HashMap -luokka on todennäköisesti paras ratkaisu. Toisin kuin muut menetelmät, tämä luokka tallentaa tiedot avain-arvo-pareina. Tämä tarkoittaa, että jokaiselle avaimelle on määritetty tarkalleen yksi arvo. Jos haluat hakea arvon, voit käyttää vastaavaa avainta saadaksesi haluamasi tuloksen. Avaimet ja arvot voivat koostua täysin erilaisista tietotyypeistä, kuten merkkijonoista, numeroista tai muista objekteista.
Java HashMap -luokka tarjoaa useita etuja. Ensinnäkin sen avulla voit suorittaa nopean haun ohjelmointikielessä. Avain-arvo-lähestymistapa varmistaa myös, että yhdelle avaimelle ei määritetä useita arvoja, mikä estää päällekkäisyydet. Voit kuitenkin lisätä saman objektin useita kertoja eri avaimilla. Tällainen tallennus- ja hakutoiminto vaikuttaa suorituskykyyn positiivisesti verrattuna jäykkään luetteloon, joka on huomattavasti vähemmän joustava. Tämä on myös yksi avain-arvo-tallennustilan suurimmista eduista, joka käyttää samaa periaatetta. Seuraavissa osioissa näytämme, kuinka luoda ja käyttää Java HashMap-karttoja.
HashMap-karttojen luominen ja käyttö Java-kielellä
Uuden HashMap-kartan luomiseksi Java-kielellä sinun on ensin tuotava luokka. Tätä varten käytä Java-komentoa import. Koodi näyttää tältä:
import java.util.HashMap;
HashMap<String, String> nameOfTheHashMap = new HashMap<String, String> ();javaKaksi datatyyppiä, jotka on erotettu toisistaan pilkulla (tässä tapauksessa String, String), ovat avain ja arvo.
Uuden HashMap-kartan luominen
Selittääksemme paremmin Java HashMap-karttojen toimintaa, olemme keksineet yksinkertaisen esimerkin. Esimerkissämme on luettelo asiakkaista, jotka yritys haluaa tallentaa ja joihin se haluaa päästä käsiksi milloin tahansa. Luettelossa on kunkin asiakkaan nimi ja yksilöllinen asiakastunnus. Vaikka asiakastunnus (esimerkissämme avain) on aina yksilöllinen, on mahdollista, että useilla asiakkailla on sama nimi. Jokaisella asiakkaalla on kuitenkin oma yksilöllinen tunnuksensa. Tämä tunnus tallennetaan kokonaislukutyyppisenä datana ja nimet merkkijonoina. Näin voit määrittää tämän Java HashMapissa:
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
}
}javaElementtien lisääminen
Nyt meillä on Java HashMap, mutta se on vielä tyhjä. Lisätäksemme uusia avain-arvo-pareja käytämme put() -menetelmää. Se toimii seuraavasti:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList);
}
}javaKäytämme komentoa System.out.println asiakastietojen näyttämiseen. Tulostuksen pitäisi näyttää tältä:
{1077=Jerry Mowry, 15312=Peter Smith, 73329=Maria Grosso}javaElementtien hakeminen
Nyt olemme luoneet asiakasluettelon, joka voi sisältää lukuisia merkintöjä. Haluamme myös pystyä käsittelemään kutakin asiakastietoa erikseen. Tätä varten välitämme avaimen get() -metodille. Tässä on esimerkki siitä, miten tämä toimii:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList.get(1077));
}
}javaVain nimi “Jerry Mowry” tulisi näkyä.
Merkintöjen poistaminen
Jos haluat poistaa merkinnän, käytä menetelmää remove(). Tässä on esimerkki tämän menetelmän käytöstä:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
customerList.remove(1077);
System.out.println(customerList);
}
}javaTulostus näyttää nyt tältä:
{15312=Peter Smith, 73329=Maria Grosso}javaToinen vaihtoehto on poistaa koko luettelo. Tätä varten käytä menetelmää clear().
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
customerList.clear();
System.out.println(customerList);
}
}javaNyt saamme vain seuraavan tuloksen:
{ }javaKuinka määrittää merkintöjen lukumäärä
Vaikka Java HashMap on melko yksinkertainen, voit käyttää tätä luokkaa myös suurempien ja monimutkaisempien projektien hallintaan. Suuremmassa projektissa saatat haluta määrittää tarkasti, kuinka monta merkintää sinulla on. Loppujen lopuksi kyseessä on koko asiakaskuntasi. Voit käyttää size() tähän tarkoitukseen. Näin se tehdään:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList.size());
}
}javaEsimerkissämme tulostetaan luku 3.
Kuinka näyttää vain avaimet tai arvot
Voit myös saada luettelon, joka sisältää vain avaimet tai arvot, käyttämällä for-each-silmukkaa. Avaimien hakemiseen käytetään keySet() -menetelmää ja arvojen hakemiseen values() -menetelmää. Seuraavassa koodiesimerkissä käytämme values():
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
for (String i : customerList.values()) {
System.out.println(i);
}
}
}javaTulostus on:
Jerry Mowry
Peter Smith
Maria GrossojavaHashMap-taulukon tarkistaminen tietyn arvon tai avaimen varalta
Tiettyyn merkintään pääsyn lisäksi voit myös tarkistaa, onko merkintä jo olemassa Java HashMapissa. Voit tehdä tämän käyttämällä menetelmää containsKey() (avaimille) ja menetelmää containsValue() (arvoille). Jos elementti on mukana, tulos on “true”. Jos elementti ei ole HashMapissa, tulos on “false”. Molemmat menetelmät toimivat seuraavasti:
public class Main {
public static void main(String[] args) {
HashMap<Integer, String> customerList = new HashMap<>();
customerList.put (1077, "Jerry Mowry");
customerList.put (15312, "Peter Smith");
customerList.put (73329, "Maria Grosso");
System.out.println(customerList.containsKey(15312));
System.out.println(customerList.containsValue("Stuart Miller");
}
}javaKoska avain “15312” on mukana, mutta arvo “Stuart Miller” ei ole, tulos näyttää tältä.
true
falsejava81dd3d98343240d17e9a1e470553bdb0