Java HashMap (cu exemple)

În acest tutorial, vom afla despre clasa Java HashMap și diferitele sale operații cu ajutorul unor exemple.

HashMapClasa 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ă.

HashMapClasa implementeaza interfata Map.

Implementarea Java HashMap

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 HashMaplimbă 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

HashMapClasa 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 HashMapclasei. 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 HashMapnumere numite. Aici, am folosit put()metoda pentru a adăuga elemente la numere.

Observați declarația,

 numbers.put("One", 1);

Aici, transmitem Stringvaloarea One ca cheie și Integervaloarea 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 ++.

HashMapClasa 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ă Hashmapconține valoarea specificată
mărimea() returnează numărul de articole din HashMap
este gol() verifică dacă Hashmapeste 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 Mapinterfeței care returnează o vizualizare (elemente) ale hărții.

Mai întâi trebuie să importăm java.util.Map.Entrypachetul 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 .

Articole interesante...