Java HashMap (s príkladmi)

V tomto tutoriále sa pomocou príkladov dozvieme o triede Java HashMap a jej rôznych operáciách.

HashMapTrieda zbierok rámca Java poskytuje funkcie dátové štruktúry hash tabuľky.

Ukladá prvky do párov kľúč / hodnota . Tu, kľúče sú jedinečné identifikátory spájať jednotlivé hodnoty na mape.

HashMapTrieda implementuje rozhranie mapy.

Implementácia Java HashMap

Vytvorte HashMap

Aby sme vytvorili hashovaciu mapu, musíme najskôr importovať java.util.HashMapbalíček. Po importovaní balíka tu môžeme vytvárať hašovacie mapy v Jave.

 // hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();

Vo vyššie uvedenom kóde sme vytvorili hashmapu pomenovanú čísla. Tu K predstavuje typ kľúča a V predstavuje typ hodnôt. Napríklad,

 HashMap numbers = new HashMap();

Tu je druh kľúča je Stringa typ hodnôt je Integer.

Príklad 1: Vytvorenie HashMap v Jave

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

Výkon

 HashMap: (Java = 8, JavaScript = 1, Python = 3)

Vo vyššie uvedenom príklade sme vytvorili HashMappomenované jazyky.

Tu sme použili put()metódu na pridanie prvkov do hashmapy. Viac o put()metóde sa dozvieme ďalej v tomto návode.

Základné operácie na Java HashMap

HashMapTrieda ponúka celý rad možností na vykonávanie rôznych operácií na hashmaps. V tomto výučbe sa pozrieme na niektoré bežne používané operácie s zoznamom polí:

  • Pridajte prvky
  • Prístupové prvky
  • Zmena prvkov
  • Odstrániť prvky

1. Pridajte prvky do HashMap

Na pridanie jedného prvku do hashmapy použijeme put()metódu HashMaptriedy. Napríklad,

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

Výkon

 Počiatočná HashMap: () HashMap po vložení (): (Jeden = 1, Dva = 2, Tri = 3)

Vo vyššie uvedenom príklade sme vytvorili HashMappomenované čísla. Tu sme použili put()metódu na pridanie prvkov k číslam.

Všimnite si vyhlásenie,

 numbers.put("One", 1);

Tu odovzdávame metóde Stringhodnotu One ako kľúč a Integerhodnotu 1 ako hodnotu put().

Odporúčané čítania

  • Java HashMap put ()
  • Java HashMap putAll ()
  • Java HashMap putIfAbsent ()

2. Prístup k prvkom HashMap

get()Metódu môžeme použiť na prístup k hodnote z hashmapy. Napríklad,

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

Výkon

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Hodnota v indexe 1: Java

Vo vyššie uvedenom príklade si všimnite výraz,

 languages.get(1);

Tu get()metóda berie kľúč ako svoj argument a vracia zodpovedajúcu hodnotu spojenú s kľúčom.

Môžeme tiež prístup k kľúče , hodnoty a kľúč / hodnota pary HashMap as výhľadom nastaviť pomocou keySet(), values()a entrySet()metód, resp. Napríklad,

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

Výkon

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Kľúče: (1, 2, 3) Hodnoty: (Java, Python, JavaScript) Mapovanie kľúča / hodnoty: (1 = Java, 2 = Python, 3 = JavaScript )

Vo vyššie uvedenom príklade sme vytvorili hashmapu s názvom jazyky. Tu pristupujeme ku kľúčom , hodnotám a mapovaniu kľúčov / hodnôt z hashmapy.

Odporúčané čítania

  • Java HashMap get ()
  • Java Hashmap getOrDefault ()
  • Sada kľúčov Java HashMap ()
  • Hodnoty Java HashMap ()
  • Java HashMap entrySet ()

3. Zmeňte hodnotu HashMap

replace()Metódu môžeme použiť na zmenu hodnoty spojenej s kľúčom v hashmape. Napríklad,

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

Výkon

 Originálna HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap pomocou replace (): (1 = Java, 2 = C ++, 3 = JavaScript)

Vo vyššie uvedenom príklade sme vytvorili hashmapu pomenovanú jazyky. Všimnite si výraz,

 languages.replace(2, "C++");

Tu meníme hodnotu, na ktorú odkazuje kláves 2, s novou hodnotou C ++.

HashMapTrieda tiež poskytuje niektoré variácie replace()metódy. Ak sa chcete dozvedieť viac, navštívte stránku

  • Java HashMap replace ()
  • Java HashMap replaceAll ()

4. Odstráňte prvky HashMap

Na odstránenie prvkov z hashmapy môžeme použiť metódu remove (). Napríklad,

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

Výkon

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Odstránená hodnota: Python Aktualizovaná HashMap: (1 = Java, 3 = JavaScript)

Tu remove()metóda berie kľúč ako svoj parameter. Potom vráti hodnotu spojenú s kľúčom a záznam odstráni .

Položku môžeme tiež odstrániť iba za určitých podmienok. Napríklad,

 remove(2, "C++");

Tu remove()metóda odstráni záznam iba vtedy, ak je kľúč 2 spojený s hodnotou C ++ . Pretože 2 nie je spojený s C ++ , záznam sa neodstráni.

Ak sa chcete dozvedieť viac, navštívte Java HashMap remove ().

Ďalšie metódy HashMap

Metóda Popis
jasný() odstráni všetky mapovania z HashMap
vypočítať () vypočíta novú hodnotu pre zadaný kľúč
computeIfAbsent () počíta hodnotu, ak nie je k dispozícii mapovanie pre kľúč
computeIfPresent () počíta hodnotu pre mapovanie, ak je kľúč prítomný
zlúčiť() zlúči zadané mapovanie do HashMap
klon () urobí kópiu HashMap
containsKey () skontroluje, či sa zadaný kľúč nachádza v Hashmape
containsValue () skontroluje, či Hashmapobsahuje zadanú hodnotu
veľkosť () vráti počet položiek v priečinku HashMap
je prázdny() checks if the Hashmap is empty

Iterate through a HashMap

To iterate through each entry of the hashmap, we can use Java for-each loop. We can iterate through keys only, vales only, and key/value mapping. For example,

 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(", "); ) ) )

Output

 HashMap: (1=Java, 2=Python, 3=JavaScript) Keys: 1, 2, 3, Values: Java, Python, JavaScript, Entries: 1=Java, 2=Python, 3=JavaScript,

Note that we have used the Map.Entry in the above example. It is the nested class of the Map interface that returns a view (elements) of the map.

We first need to import the java.util.Map.Entry package in order to use this class.

This nested class returns a view (elements) of the map.

Creating HashMap from Other Maps

In Java, we can also create a hashmap from other maps. For example,

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

Output

 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.

V prípade, že voliteľné parametre nie sú použité, potom predvolený kapacita bude 16 a východiskový faktor zaťaženia bude 0.75 .

Zaujímavé články...