În acest tutorial, vom afla despre clasa Java HashMap și diferitele sale operații cu ajutorul unor exemple.
HashMap
Clasa cadrului colecțiilor Java oferă funcționalitatea structurii de date tabel hash.
Stochează elemente în perechi cheie / valoare . Aici, cheile sunt identificatori unici utilizați pentru a asocia fiecare valoare pe o hartă.
HashMap
Clasa implementeaza interfata Map.

Creați un HashMap
Pentru a crea o hartă hash, trebuie mai java.util.HashMap
întâi să importăm pachetul. Odată ce am importat pachetul, iată cum putem crea hashmaps în Java.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
În codul de mai sus, am creat un hashmap numit numere. Aici, K reprezintă tipul de cheie și V reprezintă tipul de valori. De exemplu,
HashMap numbers = new HashMap();
Aici, tipul de taste este String
și tipul de valori este Integer
.
Exemplul 1: Creați HashMap în Java
import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap languages = new HashMap(); // add elements to hashmap languages.put("Java", 8); languages.put("JavaScript", 1); languages.put("Python", 3); System.out.println("HashMap: " + languages); ) )
Ieșire
HashMap: (Java = 8, JavaScript = 1, Python = 3)
În exemplul de mai sus, am creat o HashMap
limbă numită.
Aici, am folosit put()
metoda pentru a adăuga elemente la hashmap. Vom afla mai multe despre put()
metodă mai târziu în acest tutorial.
Operațiuni de bază pe Java HashMap
HashMap
Clasa oferă diverse metode pentru a efectua operații diferite pe hashmaps. Vom analiza câteva operații frecvent utilizate în acest tutorial:
- Adăugați elemente
- Elemente de acces
- Schimbați elementele
- Eliminați elementele
1. Adăugați elemente la un HashMap
Pentru a adăuga un singur element la hashmap, folosim put()
metoda HashMap
clasei. De exemplu,
import java.util.HashMap; class Main ( public static void main(String() args) ( // create a hashmap HashMap numbers = new HashMap(); System.out.println("Initial HashMap: " + numbers); // put() method to add elements numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("HashMap after put(): " + numbers); ) )
Ieșire
HashMap inițial: () HashMap după put (): (One = 1, Two = 2, Three = 3)
În exemplul de mai sus, am creat HashMap
numere numite. Aici, am folosit put()
metoda pentru a adăuga elemente la numere.
Observați declarația,
numbers.put("One", 1);
Aici, transmitem String
valoarea One ca cheie și Integer
valoarea 1 ca valoare către put()
metodă.
Lecturi recomandate
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Accesați elementele HashMap
Putem folosi get()
metoda pentru a accesa valoarea din hashmap. De exemplu,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // get() method to get value String value = languages.get(1); System.out.println("Value at index 1: " + value); ) )
Ieșire
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Valoare la indexul 1: Java
În exemplul de mai sus, observați expresia,
languages.get(1);
Aici, get()
metoda ia cheia ca argument și returnează valoarea corespunzătoare asociată cheii.
Putem accesa , de asemenea, cheile , valorile și cheie / valoare perechi de HashMap ca opiniile exprimate folosind keySet()
, values()
și entrySet()
metode respectiv. De exemplu,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // return set view of keys // using keySet() System.out.println("Keys: " + languages.keySet()); // return set view of values // using values() System.out.println("Values: " + languages.values()); // return set view of key/value pairs // using entrySet() System.out.println("Key/Value mappings: " + languages.entrySet()); ) )
Ieșire
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Taste: (1, 2, 3) Valori: (Java, Python, JavaScript) Asocieri cheie / valoare: (1 = Java, 2 = Python, 3 = JavaScript )
În exemplul de mai sus, am creat un hashmap numit limbi. Aici, accesăm cheile , valorile și mapările cheie / valoare din hashmap.
Lecturi recomandate
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Java HashMap keySet ()
- Valorile Java HashMap ()
- Java HashMap entrySet ()
3. Schimbați valoarea HashMap
Putem folosi replace()
metoda pentru a modifica valoarea asociată cu o cheie dintr-un hashmap. De exemplu,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("Original HashMap: " + languages); // change element with key 2 languages.replace(2, "C++"); System.out.println("HashMap using replace(): " + languages); ) )
Ieșire
HashMap original: (1 = Java, 2 = Python, 3 = JavaScript) HashMap folosind replace (): (1 = Java, 2 = C ++, 3 = JavaScript)
În exemplul de mai sus, am creat un hashmap numit limbi. Observați expresia,
languages.replace(2, "C++");
Aici, schimbăm valoarea menționată de cheia 2 cu noua valoare C ++.
HashMap
Clasa oferă , de asemenea , unele variații ale replace()
metodei. Pentru a afla mai multe, vizitați
- Java HashMap replace ()
- Java HashMap replaceAll ()
4. Eliminați elementele HashMap
Pentru a elimina elemente dintr-un hashmap, putem folosi metoda remove (). De exemplu,
import java.util.HashMap; class Main ( public static void main(String() args) ( HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // remove element associated with key 2 String value = languages.remove(2); System.out.println("Removed value: " + value); System.out.println("Updated HashMap: " + languages); ) )
Ieșire
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Valoare eliminată: Python Actualizat HashMap: (1 = Java, 3 = JavaScript)
Aici, remove()
metoda ia cheia ca parametru. Apoi returnează valoarea asociată cheii și elimină intrarea .
De asemenea, putem elimina intrarea numai în anumite condiții. De exemplu,
remove(2, "C++");
Aici, remove()
metoda elimină intrarea numai dacă cheia 2 este asociată cu valoarea C ++ . Deoarece 2 nu este asociat cu C ++ , nu elimină intrarea.
Pentru a afla mai multe, vizitați Java HashMap remove ().
Alte metode ale HashMap
Metodă | Descriere |
---|---|
clar() | elimină toate mapările din HashMap |
calcula() | calculează o nouă valoare pentru cheia specificată |
computeIfAbsent () | calculează valoarea dacă o mapare pentru cheie nu este prezentă |
computeIfPresent () | calculează o valoare pentru mapare dacă cheia este prezentă |
combina() | combină maparea specificată cu HashMap |
clona () | face copia HashMap |
containsKey () | verifică dacă cheia specificată este prezentă în Hashmap |
containsValue () | verifică dacă Hashmap conține valoarea specificată |
mărimea() | returnează numărul de articole din HashMap |
este gol() | verifică dacă Hashmap este gol |
Iterează printr-un HashMap
Pentru a itera prin fiecare intrare a hashmap-ului, putem folosi Java pentru fiecare buclă. Ne putem itera prin chei numai , Vales numai , și cartografiere cheie / valoare . De exemplu,
import java.util.HashMap; import java.util.Map.Entry; class Main ( public static void main(String() args) ( // create a HashMap HashMap languages = new HashMap(); languages.put(1, "Java"); languages.put(2, "Python"); languages.put(3, "JavaScript"); System.out.println("HashMap: " + languages); // iterate through keys only System.out.print("Keys: "); for (Integer key : languages.keySet()) ( System.out.print(key); System.out.print(", "); ) // iterate through values only System.out.print("Values: "); for (String value : languages.values()) ( System.out.print(value); System.out.print(", "); ) // iterate through key/value entries System.out.print("Entries: "); for (Entry entry : languages.entrySet()) ( System.out.print(entry); System.out.print(", "); ) ) )
Ieșire
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Taste: 1, 2, 3, Valori: Java, Python, JavaScript, Intrări: 1 = Java, 2 = Python, 3 = JavaScript,
Rețineți că am folosit Map.Entry
în exemplul de mai sus. Este clasa imbricată a Map
interfeței care returnează o vizualizare (elemente) ale hărții.
Mai întâi trebuie să importăm java.util.Map.Entry
pachetul pentru a utiliza această clasă.
Această clasă imbricată returnează o vizualizare (elemente) a hărții.
Crearea HashMap din alte hărți
În Java, putem crea și un hashmap din alte hărți. De exemplu,
import java.util.HashMap; import java.util.TreeMap; class Main ( public static void main(String() args) ( // create a treemap TreeMap evenNumbers = new TreeMap(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("TreeMap: " + evenNumbers); // create hashmap from the treemap HashMap numbers = new HashMap(evenNumbers); numbers.put("Three", 3); System.out.println("HashMap: " + numbers); ) )
Ieșire
TreeMap: (Four=4, Two=2) HashMap: (Two=2, Three=3, Four=4)
In the above example, we have created a TreeMap
named evenNumbers
. Notice the expression,
numbers = new HashMap(evenNumbers)
Here, we are creating a HashMap
named numbers using the TreeMap
. To learn more about treemap, visit Java TreeMap.
Note: While creating a hashmap, we can include optional parameters: capacity and load factor. For example,
HashMap numbers = new HashMap(8, 0.6f);
Here,
- 8 (capacity is 8) - This means it can store 8 entries.
- 0.6f (load factor is 0.6) - This means whenever our hash table is filled by 60%, the entries are moved to a new hash table double the size of the original hash table.
Dacă parametrii opționali nu sunt utilizați, atunci capacitatea implicită va fi 16 și factorul de încărcare implicit va fi 0,75 .