logo

Java HashMap

Java HashMap osztályhierarchia

Jáva HashMap osztály valósítja meg a Map felületet, amely lehetővé teszi számunkra kulcs és érték pár tárolására , ahol a kulcsoknak egyedinek kell lenniük. Ha megpróbálja beilleszteni a duplikált kulcsot, az lecseréli a megfelelő kulcs elemét. A kulcsindex használatával könnyen végrehajtható műveletek, például frissítés, törlés stb. A HashMap osztály ajava.utilcsomag.

A Java HashMap olyan, mint a régi Hashtable osztály, de nincs szinkronizálva. Lehetővé teszi a null elemek tárolását is, de csak egy null kulcs legyen. A Java 5 óta ez a jelölésHashMap, ahol a K a kulcsot, a V pedig az értéket jelenti. Megörökli az AbstractMap osztályt, és megvalósítja a Map interfészt.

Emlékezendő pontok

  • A Java HashMap a kulcson alapuló értékeket tartalmaz.
  • A Java HashMap csak egyedi kulcsokat tartalmaz.
  • A Java HashMap egy nullkulcsot és több nullértéket tartalmazhat.
  • A Java HashMap nincs szinkronizálva.
  • A Java HashMap nem tart fenn rendet.
  • A Java HashMap osztály kezdeti alapértelmezett kapacitása 16, terhelési tényezője 0,75.

A HashMap osztály hierarchiája

Amint a fenti ábrán látható, a HashMap osztály kiterjeszti az AbstractMap osztályt, és megvalósítja a Map interfészt.

HashMap osztály deklaráció

Lássuk a java.util.HashMap osztály deklarációját.

erőforrás-elosztási grafikon
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

HashMap osztály paraméterei

Lássuk a java.util.HashMap osztály paramétereit.

    K: Ez a térkép által karbantartott kulcsok típusa.BAN BEN: Ez a leképezett értékek típusa.

A Java HashMap osztály konstruktőrei

KonstruktőrLeírás
HashMap()Ez egy alapértelmezett HashMap létrehozására szolgál.
HashMap (m térkép)A hash térkép inicializálására szolgál az adott m térképobjektum elemeinek felhasználásával.
HashMap (belső kapacitás)A hash leképezés kapacitásának inicializálására szolgál az adott egész értékre, kapacitásra.
HashMap (belső kapacitás, float loadFactor)A hash-leképezés kapacitásának és terhelési tényezőjének inicializálására szolgál argumentumai segítségével.

A Java HashMap osztály módszerei

MódszerLeírás
void clear()Ez az összes leképezés eltávolítására szolgál erről a térképről.
logikai érték üres()Ha ez a leképezés nem tartalmaz kulcsérték-leképezést, akkor a rendszer true értékkel tér vissza.
Objektum klón()Ennek a HashMap-példánynak egy sekély másolatának visszaadására szolgál: maguk a kulcsok és értékek nincsenek klónozva.
Bejegyzés beállításaSet()A térképen található leképezések gyűjteménynézetének visszaadására szolgál.
Set keySet()Ez arra szolgál, hogy visszaadja a térképen található kulcsok beállított nézetét.
V put (objektumkulcs, objektumérték)Egy bejegyzés beszúrására szolgál a térképen.
void putAll (térkép térkép)A megadott térkép térképbe történő beillesztésére szolgál.
V putIfAbsent (K kulcs, V érték)A megadott értéket a megadott kulccsal csak akkor szúrja be a térképbe, ha még nincs megadva.
V eltávolítás (objektumkulcs)A megadott kulcshoz tartozó bejegyzés törlésére szolgál.
logikai eltávolítás (objektumkulcs, objektumérték)Eltávolítja a megadott értékeket a hozzájuk tartozó megadott kulcsokkal a térképről.
V számítás (K kulcs, BiFunction remapping Function)A megadott kulcs és az aktuális leképezett érték (vagy nulla, ha nincs aktuális leképezés) leképezésének kiszámítására szolgál.
V computeIfAbsent (K billentyű, függvényleképezési függvény)Az érték kiszámítására szolgál az adott leképezési függvény segítségével, ha a megadott kulcs még nincs értékhez társítva (vagy nullára van leképezve), és beírja ezt a leképezésbe, hacsak nem null.
V computeIfPresent(K kulcs, BiFunction remappingFunction)A kulcs és az aktuális leképezett érték alapján új leképezés kiszámítására szolgál, ha a megadott kulcs értéke jelen van, és nem nulla.
logikai érték tartalmazza(objektumérték)Ez a metódus igazat ad vissza, ha az értékkel megegyező érték létezik a térképen, ellenkező esetben hamis értéket ad vissza.
logikai érték tartalmazzaKey (objektumkulcs)Ez a metódus igazat ad vissza, ha a kulccsal megegyező kulcs létezik a térképen, ellenkező esetben hamis értéket ad vissza.
logikai egyenlő (o objektum)A megadott objektum és a térkép összehasonlítására szolgál.
érvénytelen forEach (BiConsumer akció)Az adott műveletet a térkép minden egyes bejegyzésére végrehajtja, amíg az összes bejegyzést fel nem dolgozta, vagy a művelet kivételt nem tesz.
V get (objektumkulcs)Ez a metódus azt az objektumot adja vissza, amely a kulcshoz tartozó értéket tartalmazza.
V getOrDefault (objektumkulcs, V alapértelmezett érték)Azt az értéket adja vissza, amelyhez a megadott kulcs hozzá van rendelve, vagy az alapértelmezett értéket, ha a leképezés nem tartalmaz leképezést a kulcshoz.
logikai érték üres()Ez a metódus igazat ad vissza, ha a térkép üres; false értéket ad vissza, ha legalább egy kulcsot tartalmaz.
V összevonás (K kulcs, V érték, BiFunction remapping Function)Ha a megadott kulcs még nincs hozzárendelve értékhez, vagy nullához van társítva, akkor társítja a megadott nem null értékkel.
V csere (K kulcs, V érték)A megadott kulcshoz tartozó értéket helyettesíti.
logikai csere (K kulcs, V régiérték, V újérték)Lecseréli a régi értéket egy adott kulcs új értékére.
érvénytelen csereAll (BiFunction funkció)Minden bejegyzés értékét lecseréli az adott függvény meghívásának eredményére, amíg az összes bejegyzés feldolgozásra nem kerül, vagy a függvény kivételt nem dob.
Gyűjteményértékek()A térképen található értékek gyűjteménynézetét adja vissza.
int size()Ez a módszer a bejegyzések számát adja vissza a térképen.

Java HashMap példa

Lássunk egy egyszerű példát a HashMap-re a kulcs és érték pár tárolására.

 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()); } } } 
Tesztelje most
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

Ebben a példában kulcsként Integert, értékként pedig Stringet tárolunk, ezért használjukHashMapmint a típus. Atesz()módszer beszúrja az elemeket a térképbe.

A kulcs és érték elemek megszerzéséhez a getKey() és getValue() metódusokat kell meghívnunk. ATérkép.Belépésfelület tartalmazza a getKey() és getValue() mód. De meg kell hívnunk a Map interfész enterSet() metódusát, hogy megkapjuk a Map.Entry példányát.

Nincs duplikált kulcs a HashMapon

Nem tárolhat duplikált kulcsokat a HashMapben. Ha azonban más értékkel próbálja meg a duplikált kulcsot tárolni, az lecseréli az értéket.

 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()); } } } 
Tesztelje most
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Java HashMap példa () elemek hozzáadására

Itt különböző módokat látunk az elemek beillesztésére.

 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 példa () elemek eltávolítására

Itt különböző módokat látunk az elemek eltávolítására.

 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); } } 

Kimenet:

 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 példa () elemek cseréjére

Itt különböző módokat látunk az elemek cseréjére.

 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 

A HashSet és a HashMap közötti különbség

A HashSet csak értékeket tartalmaz, míg a HashMap egy bejegyzést (kulcsot és értéket) tartalmaz.

Java HashMap példa: Könyv

 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); } } } 
Tesztelje most

Kimenet:

 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 

Kapcsolódó témák

Hogyan iteráljuk a térképet Java nyelven

A HashMap rendezése Java-ban

Terhelési tényező a HashMapben

A HashMap működése Java nyelven | Hogyan működik a HashMap

A HashMap és a Hashtable közötti különbség

A HashMap rendezése érték szerint

A HashSet és a HashMap közötti különbség

A HashMap és a TreeMap közötti különbség

Java térképes felület

típus konvertálás és öntés java-ban