Java HashMap class implementează interfața Map care ne permite pentru a stoca perechea cheie și valoare , unde cheile ar trebui să fie unice. Dacă încercați să introduceți cheia duplicată, aceasta va înlocui elementul cheii corespunzătoare. Este ușor să efectuați operațiuni folosind indexul cheii, cum ar fi actualizarea, ștergerea etc. Clasa HashMap se găsește înjava.utilpachet.
HashMap în Java este ca clasa moștenită Hashtable, dar nu este sincronizată. Ne permite să stocăm și elementele nule, dar ar trebui să existe o singură cheie nulă. Din Java 5, este notat caHashMap, unde K reprezintă cheie și V pentru valoare. Moștenește clasa AbstractMap și implementează interfața Map.
Puncte de reținut
- Java HashMap conține valori bazate pe cheie.
- Java HashMap conține doar chei unice.
- Java HashMap poate avea o cheie nulă și mai multe valori nule.
- Java HashMap nu este sincronizat.
- Java HashMap nu menține nicio ordine.
- Capacitatea implicită inițială a clasei Java HashMap este 16 cu un factor de încărcare de 0,75.
Ierarhia clasei HashMap
După cum se arată în figura de mai sus, clasa HashMap extinde clasa AbstractMap și implementează interfața Map.
Declarația clasei HashMap
Să vedem declarația pentru clasa java.util.HashMap.
aliniați imaginea css
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable
Parametrii clasei HashMap
Să vedem Parametrii pentru clasa java.util.HashMap.
Constructorii clasei Java HashMap
Constructor | Descriere |
---|---|
HashMap() | Este folosit pentru a construi un HashMap implicit. |
HashMap(Harta m) | Este folosit pentru a inițializa harta hash folosind elementele obiectului Map dat m. |
HashMap (capacitate int) | Este folosit pentru a inițializa capacitatea hărții hash la valoarea întreagă dată, capacitatea. |
HashMap (capacitate int, factor de încărcare float) | Este folosit pentru a inițializa atât capacitatea, cât și factorul de încărcare al hărții hash, folosind argumentele acesteia. |
Metode ale clasei Java HashMap
Metodă | Descriere |
---|---|
void clear() | Este folosit pentru a elimina toate mapările de pe această hartă. |
boolean este gol () | Este folosit pentru a returna true dacă această hartă nu conține mapări cheie-valoare. |
Clona obiect() | Este folosit pentru a returna o copie superficială a acestei instanțe HashMap: cheile și valorile în sine nu sunt clonate. |
Set entrySet() | Este folosit pentru a returna o vizualizare de colecție a mapărilor conținute în această hartă. |
Setați keySet() | Este folosit pentru a returna o vizualizare setată a cheilor conținute în această hartă. |
V put(cheia obiectului, valoarea obiectului) | Este folosit pentru a introduce o intrare în hartă. |
void putAll (hartă pe hartă) | Este folosit pentru a introduce harta specificată în hartă. |
V putIfAbsent (tasta K, valoarea V) | Inserează valoarea specificată cu cheia specificată în hartă numai dacă nu este deja specificată. |
V elimina (cheia obiect) | Este folosit pentru a șterge o intrare pentru cheia specificată. |
boolean remove (cheie obiect, valoare obiect) | Îndepărtează de pe hartă valorile specificate cu cheile specificate asociate. |
Calcul V (tasta K, funcția de remapare BiFunction) | Este folosit pentru a calcula o mapare pentru cheia specificată și valoarea sa mapată curentă (sau nulă dacă nu există o mapare curentă). |
V computeIfAbsent (tasta K, Function mappingFunction) | Este folosit pentru a-și calcula valoarea utilizând funcția de mapare dată, dacă cheia specificată nu este deja asociată cu o valoare (sau este mapată la null) și o introduce în această hartă dacă nu este nulă. |
V computeIfPresent (tasta K, funcția de remapare BiFunction) | Este folosit pentru a calcula o nouă mapare având în vedere cheia și valoarea ei actuală mapată dacă valoarea pentru cheia specificată este prezentă și nu este nulă. |
boolean containsValue(Valoare obiect) | Această metodă returnează true dacă o valoare egală cu valoarea există în cadrul hărții, altfel returnează false. |
boolean containsKey (cheie obiect) | Această metodă returnează true dacă o cheie egală cu cheia există în cadrul hărții, altfel returnează false. |
boolean este egal(obiect o) | Este folosit pentru a compara obiectul specificat cu harta. |
void forEach (acțiune BiConsumer) | Efectuează acțiunea dată pentru fiecare intrare din hartă până când toate intrările au fost procesate sau acțiunea aruncă o excepție. |
V get(cheie obiect) | Această metodă returnează obiectul care conține valoarea asociată cheii. |
V getOrDefault(cheia obiectului, V defaultValue) | Returnează valoarea la care este mapată cheia specificată sau defaultValue dacă harta nu conține nicio mapare pentru cheie. |
boolean este gol () | Această metodă returnează true dacă harta este goală; returnează false dacă conține cel puțin o cheie. |
V merge (tasta K, valoarea V, funcția de remapare BiFunction) | Dacă cheia specificată nu este deja asociată cu o valoare sau este asociată cu null, o asociază cu valoarea non-nulă dată. |
V înlocuiți (tasta K, valoarea V) | Acesta înlocuiește valoarea specificată pentru o cheie specificată. |
înlocuire booleană (cheia K, V oldValue, V newValue) | Acesta înlocuiește vechea valoare cu noua valoare pentru o cheie specificată. |
void replaceAll (funcția BiFunction) | Acesta înlocuiește valoarea fiecărei intrări cu rezultatul invocării funcției date pe acea intrare până când toate intrările au fost procesate sau funcția aruncă o excepție. |
Valori de colecție() | Returnează o vizualizare de colecție a valorilor conținute în hartă. |
dimensiune int() | Această metodă returnează numărul de intrări din hartă. |
Exemplu Java HashMap
Să vedem un exemplu simplu de HashMap pentru a stoca perechea cheie și valoare.
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()); } } }Testează-l acum
Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes
În acest exemplu, stocăm Integer ca cheie și String ca valoare, așa că folosimHashMapca tip. Thea pune()metoda inserează elementele în hartă.
Pentru a obține elementele cheie și valoare, ar trebui să apelăm metodele getKey() și getValue(). TheHartă.Intrareinterfața conține getKey() și getValue() metode. Dar, ar trebui să apelăm metoda entrySet() a interfeței Map pentru a obține instanța Map.Entry.
Nicio cheie duplicată pe HashMap
Nu puteți stoca chei duplicate în HashMap. Cu toate acestea, dacă încercați să stocați cheia duplicată cu o altă valoare, aceasta va înlocui valoarea.
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()); } } }Testează-l acum
Iterating Hashmap... 1 Grapes 2 Apple 3 Banana
Exemplu Java HashMap pentru a adăuga elemente ().
Aici, vedem diferite moduri de a insera elemente.
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
Exemplu Java HashMap pentru a elimina elementele ().
Aici, vedem diferite moduri de a elimina elemente.
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); } }
Ieșire:
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}
Exemplu Java HashMap pentru a înlocui elementele ().
Aici, vedem diferite moduri de a înlocui elemente.
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
Diferența dintre HashSet și HashMap
HashSet conține numai valori, în timp ce HashMap conține o intrare (cheie și valoare).
Java HashMap Exemplu: carte
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); } } }Testează-l acum
Ieșire:
char la întreg java
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
Subiecte asemănătoare
Cum să sortați HashMap în Java
Factor de încărcare în HashMap
Funcționarea HashMap în Java | Cum funcționează HashMap
Diferența dintre HashMap și Hashtable
Cum să sortați HashMap după valoare
Diferența dintre HashSet și HashMap