logo

Java HashMap

Hierarchia tried Java HashMap

Java HashMap trieda implementuje rozhranie Map, ktoré nám umožňuje na uloženie páru kľúča a hodnoty , kde kľúče by mali byť jedinečné. Ak sa pokúsite vložiť duplicitný kľúč, nahradí prvok zodpovedajúceho kľúča. Je ľahké vykonávať operácie pomocou indexu kľúča, ako je aktualizácia, vymazanie atď. Trieda HashMap sa nachádza vjava.utilbalík.

HashMap v jazyku Java je ako staršia trieda Hashtable, ale nie je synchronizovaná. Umožňuje nám to uložiť aj nulové prvky, ale mal by existovať iba jeden nulový kľúč. Od Java 5 sa označuje akoHashMap, kde K znamená kľúč a V hodnotu. Zdedí triedu AbstractMap a implementuje rozhranie Map.

Body na zapamätanie

  • Java HashMap obsahuje hodnoty založené na kľúči.
  • Java HashMap obsahuje iba jedinečné kľúče.
  • Java HashMap môže mať jeden kľúč null a viacero hodnôt null.
  • Java HashMap nie je synchronizovaná.
  • Java HashMap neudržiava žiadny poriadok.
  • Počiatočná predvolená kapacita triedy Java HashMap je 16 s faktorom zaťaženia 0,75.

Hierarchia triedy HashMap

Ako je znázornené na obrázku vyššie, trieda HashMap rozširuje triedu AbstractMap a implementuje rozhranie Map.

Deklarácia triedy HashMap

Pozrime sa na deklaráciu pre triedu java.util.HashMap.

distributívny zákon, booleovská algebra
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

Parametre triedy HashMap

Pozrime sa na Parameters pre triedu java.util.HashMap.

    K: Je to typ kľúčov udržiavaných touto mapou.V: Je to typ mapovaných hodnôt.

Konštruktory triedy Java HashMap

KonštruktérPopis
HashMap()Používa sa na vytvorenie predvolenej HashMap.
HashMap (Mapa m)Používa sa na inicializáciu hash mapy pomocou prvkov daného objektu mapy m.
HashMap (int kapacita)Používa sa na inicializáciu kapacity hašovacej mapy na zadanú celočíselnú hodnotu, kapacitu.
HashMap(int kapacita, float loadFactor)Používa sa na inicializáciu kapacity a faktora zaťaženia hašovacej mapy pomocou jej argumentov.

Metódy triedy Java HashMap

MetódaPopis
void clear()Používa sa na odstránenie všetkých mapovaní z tejto mapy.
boolean isEmpty()Používa sa na vrátenie true, ak táto mapa neobsahuje žiadne mapovania párov kľúč – hodnota.
Object clone()Používa sa na vrátenie plytkej kópie tejto inštancie HashMap: samotné kľúče a hodnoty nie sú klonované.
Set entrySet()Používa sa na vrátenie zobrazenia kolekcie mapovaní obsiahnutých v tejto mape.
Set keySet()Používa sa na vrátenie nastaveného zobrazenia kľúčov obsiahnutých v tejto mape.
V put (kľúč objektu, hodnota objektu)Slúži na vloženie záznamu do mapy.
void putAll(mapa mapy)Slúži na vloženie zadanej mapy do mapy.
V putIfAbsent (kľúč K, hodnota V)Zadanú hodnotu so zadaným kľúčom vloží do mapy iba vtedy, ak ešte nie je zadaná.
V odstrániť (kľúč objektu)Používa sa na vymazanie záznamu pre zadaný kľúč.
boolovské odstránenie (kľúč objektu, hodnota objektu)Z mapy odstráni zadané hodnoty s priradenými špecifikovanými kľúčmi.
V compute (kľúč K, BiFunction remappingFunction)Používa sa na výpočet mapovania pre zadaný kľúč a jeho aktuálnu mapovanú hodnotu (alebo null, ak neexistuje žiadne aktuálne mapovanie).
V computeIfAbsent (kláves K, funkcia mapovania funkcií)Používa sa na výpočet jeho hodnoty pomocou danej mapovacej funkcie, ak zadaný kľúč ešte nie je priradený k hodnote (alebo je namapovaný na hodnotu null), a vloží ho do tejto mapy, pokiaľ nie je null.
V computeIfPresent (kľúč K, BiFunction remappingFunction)Používa sa na výpočet nového mapovania daného kľúča a jeho aktuálnej namapovanej hodnoty, ak je hodnota pre zadaný kľúč prítomná a nie je nulová.
boolean obsahujeHodnotu (hodnota objektu)Táto metóda vráti hodnotu true, ak na mape existuje nejaká hodnota rovnajúca sa hodnote, inak vráti hodnotu false.
boolean obsahuje kľúč (kľúč objektu)Táto metóda vráti hodnotu true, ak na mape existuje nejaký kľúč rovný kľúču, inak vráti hodnotu false.
boolean rovná sa (objekt o)Používa sa na porovnanie určeného objektu s mapou.
neplatné pre každého (akcia BiConsumer)Vykonáva danú akciu pre každý záznam na mape, kým nie sú spracované všetky záznamy alebo akcia nevyvolá výnimku.
V get (kľúč objektu)Táto metóda vráti objekt, ktorý obsahuje hodnotu priradenú ku kľúču.
V getOrDefault (kľúč objektu, V predvolená hodnota)Vráti hodnotu, na ktorú je zadaný kľúč namapovaný, alebo defaultValue, ak mapa neobsahuje žiadne mapovanie pre kľúč.
boolean isEmpty()Táto metóda vráti hodnotu true, ak je mapa prázdna; vráti hodnotu false, ak obsahuje aspoň jeden kľúč.
V zlúčenie (kľúč K, hodnota V, funkcia premapovania BiFunction)Ak zadaný kľúč ešte nie je priradený k hodnote alebo je priradený k hodnote null, priradí ho k danej hodnote, ktorá nie je nulová.
V nahradiť (kľúč K, hodnota V)Nahrádza zadanú hodnotu za zadaný kľúč.
boolovské nahradenie (kľúč K, V stará hodnota, V nová hodnota)Nahradí starú hodnotu novou hodnotou pre zadaný kľúč.
void nahradiť všetko (funkcia BiFunction)Nahrádza hodnotu každej položky výsledkom vyvolania danej funkcie na tejto položke, kým nie sú spracované všetky položky alebo funkcia nevyvolá výnimku.
Hodnoty zbierky ()Vráti zobrazenie kolekcie hodnôt obsiahnutých v mape.
int size()Táto metóda vráti počet záznamov na mape.

Príklad Java HashMap

Pozrime sa na jednoduchý príklad HashMap na uloženie páru kľúča a hodnoty.

 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()); } } } 
Vyskúšajte to
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

V tomto príklade ukladáme Integer ako kľúč a String ako hodnotu, takže používameHashMapako typ. Thedať ()metóda vloží prvky do mapy.

Na získanie prvkov kľúča a hodnoty by sme mali zavolať metódy getKey() a getValue(). TheMapa. ​​Vstuprozhranie obsahuje getKey() a getValue() metódy. Mali by sme však zavolať metódu entrySet() rozhrania Map, aby sme získali inštanciu Map.Entry.

Žiadny duplicitný kľúč na HashMap

V HashMap nemôžete ukladať duplicitné kľúče. Ak sa však pokúsite uložiť duplicitný kľúč s inou hodnotou, táto hodnota túto hodnotu nahradí.

 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()); } } } 
Vyskúšajte to
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Príklad Java HashMap na pridanie () prvkov

Tu vidíme rôzne spôsoby vkladania prvkov.

 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 

Príklad Java HashMap na odstránenie () prvkov

Tu vidíme rôzne spôsoby odstraňovania prvkov.

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

Výkon:

 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} 

Príklad Java HashMap na nahradenie () prvkov

Tu vidíme rôzne spôsoby nahradenia prvkov.

 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 

Rozdiel medzi HashSet a HashMap

HashSet obsahuje iba hodnoty, zatiaľ čo HashMap obsahuje položku (kľúč a hodnotu).

Príklad Java HashMap: Kniha

 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); } } } 
Vyskúšajte to

Výkon:

 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 

Súvisiace témy

Ako iterovať mapu v Jave

Ako triediť HashMap v Jave

Faktor zaťaženia v HashMap

Fungovanie HashMap v Jave | Ako funguje HashMap

Rozdiel medzi HashMap a Hashtable

Ako triediť HashMap podľa hodnoty

Rozdiel medzi HashSet a HashMap

Rozdiel medzi HashMap a TreeMap

Mapové rozhranie Java

int na reťazec v jazyku Java