logo

Java HashMap

Java HashMap -luokkahierarkia

Java HashMap luokka toteuttaa Map-rajapinnan, jonka avulla voimme tallentaaksesi avain- ja arvoparin , jossa avainten tulee olla yksilöllisiä. Jos yrität lisätä kaksoisavaimen, se korvaa vastaavan avaimen elementin. Avainindeksillä on helppo suorittaa toimintoja, kuten päivitys, poistaminen jne. HashMap-luokka löytyyjava.utilpaketti.

Javan HashMap on kuin vanha Hashtable-luokka, mutta sitä ei ole synkronoitu. Sen avulla voimme myös tallentaa nollaelementit, mutta siinä pitäisi olla vain yksi nolla-avain. Java 5:stä lähtien se on merkitty nimelläHashMap, jossa K tarkoittaa avainta ja V arvoa. Se perii AbstractMap-luokan ja toteuttaa Map-rajapinnan.

Muistettavat kohdat

  • Java HashMap sisältää avaimeen perustuvia arvoja.
  • Java HashMap sisältää vain yksilöllisiä avaimia.
  • Java HashMapissa voi olla yksi tyhjä avain ja useita nolla-arvoja.
  • Java HashMap ei ole synkronoitu.
  • Java HashMap ei ylläpidä järjestystä.
  • Java HashMap -luokan alkuperäinen oletuskapasiteetti on 16 ja latauskerroin 0,75.

HashMap-luokan hierarkia

Kuten yllä olevasta kuvasta näkyy, HashMap-luokka laajentaa AbstractMap-luokkaa ja toteuttaa Map-rajapinnan.

HashMap-luokkailmoitus

Katsotaanpa java.util.HashMap-luokan ilmoitus.

tyhjä lista java
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

HashMap-luokan parametrit

Katsotaanpa java.util.HashMap-luokan parametrit.

    K: Tämä on tämän kartan ylläpitämien avainten tyyppi.SISÄÄN: Se on yhdistettyjen arvojen tyyppi.

Java HashMap -luokan rakentajat

RakentajaKuvaus
HashMap()Sitä käytetään oletusarvoisen HashMapin rakentamiseen.
HashMap (kartta m)Sitä käytetään hajautuskartan alustamiseen käyttämällä annetun karttaobjektin m elementtejä.
HashMap (sisäinen kapasiteetti)Sitä käytetään alustamaan hash-kartan kapasiteetti annettuun kokonaislukuarvoon, kapasiteettiin.
HashMap (inttikapasiteetti, float loadFactor)Sitä käytetään alustamaan hash-kartan kapasiteetti ja kuormituskerroin sen argumenttien avulla.

Java HashMap -luokan menetelmät

MenetelmäKuvaus
void clear ()Sitä käytetään poistamaan kaikki kartoitukset tästä kartasta.
boolean isEmpty()Sitä käytetään palauttamaan tosi, jos tämä kartta ei sisällä avainarvomäärityksiä.
Objektin klooni()Sitä käytetään palauttamaan matala kopio tästä HashMap-esiintymästä: itse avaimia ja arvoja ei kloonata.
Aseta merkintäSet()Sitä käytetään palauttamaan kokoelmanäkymä tämän kartan sisältämistä kartoituksista.
Aseta keySet()Sitä käytetään palauttamaan sarjanäkymä tämän kartan sisältämistä avaimista.
V put (Objektiavain, Objektin arvo)Sitä käytetään merkinnän lisäämiseen karttaan.
void putAll (karttakartta)Sitä käytetään määritetyn kartan lisäämiseen karttaan.
V putIfAbsent (K-avain, V-arvo)Se lisää määritetyn arvon määritetyllä avaimella karttaan vain, jos sitä ei ole jo määritetty.
V poista (objektiavain)Sitä käytetään määritetyn avaimen merkinnän poistamiseen.
looginen poista (objektiavain, objektin arvo)Se poistaa määritetyt arvot ja niihin liittyvät määritetyt avaimet kartalta.
V-laskenta (K-avain, BiFunction-uudelleenkuvausfunktio)Sitä käytetään määritetyn avaimen ja sen nykyisen kartoitetun arvon (tai nollan, jos nykyistä kartoitusta ei ole) määrittämiseen.
V computeIfAbsent (K-näppäin, Funktiokartoitustoiminto)Sitä käytetään sen arvon laskemiseen käyttämällä annettua kuvausfunktiota, jos määritettyä avainta ei ole jo liitetty arvoon (tai se on kuvattu nollaan), ja syöttää sen tähän karttaan, ellei se ole nolla.
V computeIfPresent (K-näppäin, BiFunction-uudelleenkuvausfunktio)Sitä käytetään uuden kuvauksen laskemiseen avaimella ja sen nykyisellä kuvatulla arvolla, jos määritetyn avaimen arvo on läsnä ja ei ole nolla.
boolean includeValue(objektiarvo)Tämä menetelmä palauttaa tosi, jos jokin arvoa vastaava arvo on kartassa, muussa tapauksessa palauttaa epätosi.
boolean sisältääKey(Objektiavain)Tämä menetelmä palauttaa tosi, jos jokin avainta vastaava avain on kartassa, muussa tapauksessa palauttaa epätosi.
boolen yhtä kuin (objekti o)Sitä käytetään vertaamaan määritettyä objektia karttaan.
void forEach (kahden kuluttajan toiminta)Se suorittaa annetun toiminnon jokaiselle kartan merkinnälle, kunnes kaikki merkinnät on käsitelty tai toiminto tekee poikkeuksen.
V get (objektiavain)Tämä menetelmä palauttaa objektin, joka sisältää avaimeen liittyvän arvon.
V getOrDefault (Objektiavain, V oletusarvo)Se palauttaa arvon, johon määritetty avain on kartoitettu, tai oletusarvon, jos kartta ei sisällä avaimelle kartoitusta.
boolean isEmpty()Tämä menetelmä palauttaa tosi, jos kartta on tyhjä; palauttaa false, jos se sisältää vähintään yhden avaimen.
V yhdistä (K-avain, V-arvo, BiFunction-uudelleenkuvaustoiminto)Jos määritettyä avainta ei ole jo liitetty arvoon tai se on liitetty tyhjään, liittää sen annettuun ei-nolla-arvoon.
V korvaa (K-avain, V-arvo)Se korvaa määritetyn avaimen määritetyn arvon.
boolen korvaa (K avain, V vanha arvo, V uusi arvo)Se korvaa vanhan arvon määritetyn avaimen uudella arvolla.
void korvaa kaikki (BiFunction-toiminto)Se korvaa jokaisen merkinnän arvon tuloksella, jolla kyseistä toimintoa kutsutaan kyseisessä merkinnässä, kunnes kaikki merkinnät on käsitelty tai funktio tekee poikkeuksen.
Kokoelman arvot()Se palauttaa kokoelmanäkymän kartan sisältämistä arvoista.
int size ()Tämä menetelmä palauttaa merkintöjen määrän kartalla.

Java HashMap -esimerkki

Katsotaanpa yksinkertainen esimerkki HashMapista avain- ja arvoparin tallentamiseen.

 import java.util.*; public class HashMapExample1{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(4,'Grapes'); System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Testaa nyt
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

Tässä esimerkissä tallennamme avaimeksi kokonaisluvun ja arvoksi merkkijonon, joten käytämmeHashMapkuin tyyppi. Thelaittaa()menetelmä lisää elementit karttaan.

Saadaksemme avain- ja arvoelementit meidän pitäisi kutsua getKey()- ja getValue()-menetelmiä. TheKartta.Entrykäyttöliittymä sisältää getKey() ja getValue() menetelmiä. Mutta meidän pitäisi kutsua Map-käyttöliittymän entrySet()-metodia saadaksemme Map.Entry-esiintymän.

Ei päällekkäistä avainta HashMapissa

Et voi tallentaa päällekkäisiä avaimia HashMapiin. Jos kuitenkin yrität tallentaa avaimen kaksoiskappaleen toisella arvolla, se korvaa arvon.

 import java.util.*; public class HashMapExample2{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(1,'Grapes'); //trying duplicate key System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Testaa nyt
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Java HashMap -esimerkki lisätä()-elementtejä

Tässä näemme erilaisia ​​tapoja lisätä elementtejä.

 import java.util.*; class HashMap1{ public static void main(String args[]){ HashMap hm=new HashMap(); System.out.println('Initial list of elements: '+hm); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('After invoking put() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } hm.putIfAbsent(103, 'Gaurav'); System.out.println('After invoking putIfAbsent() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } HashMap map=new HashMap(); map.put(104,'Ravi'); map.putAll(hm); System.out.println('After invoking putAll() method '); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: {} After invoking put() method 100 Amit 101 Vijay 102 Rahul After invoking putIfAbsent() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav After invoking putAll() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav 104 Ravi 

Java HashMap-esimerkki ()-elementtien poistamiseksi

Tässä näemme erilaisia ​​tapoja poistaa elementtejä.

 import java.util.*; public class HashMap2 { public static void main(String args[]) { HashMap map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); map.put(103, 'Gaurav'); System.out.println('Initial list of elements: '+map); //key-based removal map.remove(100); System.out.println('Updated list of elements: '+map); //value-based removal map.remove(101); System.out.println('Updated list of elements: '+map); //key-value pair based removal map.remove(102, 'Rahul'); System.out.println('Updated list of elements: '+map); } } 

Lähtö:

 Initial list of elements: {100=Amit, 101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {102=Rahul, 103=Gaurav} Updated list of elements: {103=Gaurav} 

Java HashMap -esimerkki()-elementtien korvaamiseksi

Tässä näemme erilaisia ​​tapoja vaihtaa elementtejä.

 import java.util.*; class HashMap3{ public static void main(String args[]){ HashMap hm=new HashMap(); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('Initial list of elements:'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(102, 'Gaurav'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(101, 'Vijay', 'Ravi'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replaceAll((k,v) -> 'Ajay'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: 100 Amit 101 Vijay 102 Rahul Updated list of elements: 100 Amit 101 Vijay 102 Gaurav Updated list of elements: 100 Amit 101 Ravi 102 Gaurav Updated list of elements: 100 Ajay 101 Ajay 102 Ajay 

Ero HashSetin ja HashMapin välillä

HashSet sisältää vain arvoja, kun taas HashMap sisältää merkinnän (avaimen ja arvon).

Java HashMap Esimerkki: Kirja

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new HashMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 
Testaa nyt

Lähtö:

 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications and Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6 

Liittyvät aiheet

Kuinka iteroida karttaa Javassa

Kuinka lajitella HashMap Javassa

Load Factor HashMapissa

lisäyslajittelualgoritmi

HashMapin työskentely Javassa | Kuinka HashMap toimii

Ero HashMapin ja Hashtablen välillä

Kuinka lajitella HashMap arvon mukaan

Ero HashSetin ja HashMapin välillä

Ero HashMapin ja TreeMapin välillä

Java-karttaliittymä