Java HashMap (ar piemēriem)

Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java HashMap klasi un tās dažādajām darbībām.

HashMapJava kolekcijas ietvaros klase nodrošina funkcionalitāti hash tabulas datu struktūru.

Tas saglabā elementus atslēgu / vērtību pāros. Šeit atslēgas ir unikāli identifikatori, ko izmanto, lai saistītu katru vērtību kartē.

HashMapKlases īsteno kartes saskarnē.

Java HashMap ieviešana

Izveidojiet HashMap

Lai izveidotu jaukšanas karti, mums vispirms ir jāimportē java.util.HashMappakete. Kad pakotne ir importēta, šeit ir norādīts, kā mēs varam izveidot hashmaps Java.

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

Iepriekš minētajā kodā mēs esam izveidojuši hashmap ar numuriem. Šeit K apzīmē atslēgas tipu, bet V - vērtību tipu. Piemēram,

 HashMap numbers = new HashMap();

Lūk, tad ir veids atslēgām ir Stringun veidu vērtības ir Integer.

1. piemērs: izveidojiet HashMap 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); ) )

Rezultāts

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

Iepriekš minētajā piemērā mēs esam izveidojuši HashMapnosauktas valodas.

Šeit mēs izmantojām put()metodi, lai hashmap pievienotu elementus. Mēs uzzināsim vairāk par put()metodi vēlāk šajā apmācībā.

Java HashMap pamatdarbības

HashMapKlase nodrošina dažādas metodes, lai veiktu dažādas darbības ar hashmaps. Šajā apmācībā aplūkosim dažas visbiežāk izmantotās masīvu saraksta darbības:

  • Pievienojiet elementus
  • Piekļuves elementi
  • Mainīt elementus
  • Noņemt elementus

1. Pievienojiet elementus HashMap

Lai hashmap pievienotu vienu elementu, mēs izmantojam klases put()metodi HashMap. Piemēram,

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

Rezultāts

 Sākotnējais HashMap: () HashMap pēc ievietošanas (): (Viens = 1, Divi = 2, Trīs = 3)

Iepriekš minētajā piemērā mēs esam izveidojuši HashMapnosauktus numurus. Šeit mēs izmantojām put()metodi, lai skaitļiem pievienotu elementus.

Ievērojiet paziņojumu,

 numbers.put("One", 1);

Šeit metodei tiek nodota Stringvērtība One kā atslēga un Integervērtība 1 put().

Ieteicamie lasījumi

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

2. Piekļūstiet HashMap elementiem

Mēs varam izmantot get()metodi, lai piekļūtu vērtībai no hashmap. Piemēram,

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

Rezultāts

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Vērtība 1. indeksā: Java

Iepriekš minētajā piemērā ievērojiet izteicienu

 languages.get(1);

Šeit get()metode uzskata atslēgu par argumentu un atgriež atbilstošo vērtību, kas saistīta ar atslēgu.

Mēs varam piekļūt arī atslēgas , vērtības un atslēgu / vērtību pārus no HashMap kā noteikts skatiem, izmantojot keySet(), values()un entrySet()metodes, attiecīgi. Piemēram,

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

Rezultāts

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Taustiņi: (1, 2, 3) Vērtības: (Java, Python, JavaScript) Atslēgu / vērtību kartējumi: (1 = Java, 2 = Python, 3 = JavaScript )

Iepriekš minētajā piemērā mēs esam izveidojuši hashmap nosaukto valodas. Šeit mēs piekļūstam atslēgām , vērtībām un atslēgu / vērtību kartējumiem no hashmap.

Ieteicamie lasījumi

  • Java HashMap get ()
  • Java Hashmap getOrDefault ()
  • Java HashMap keySet ()
  • Java HashMap vērtības ()
  • Java HashMap entrySet ()

3. Mainiet HashMap vērtību

Mēs varam izmantot replace()metodi, lai mainītu vērtību, kas saistīta ar atslēgu hashmap. Piemēram,

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

Rezultāts

 Sākotnējais HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap, izmantojot aizstāt (): (1 = Java, 2 = C ++, 3 = JavaScript)

Iepriekš minētajā piemērā mēs esam izveidojuši hashmap nosaukto valodas. Ievērojiet izteicienu,

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

Šeit mēs mainām 2. atslēgā norādīto vērtību ar jauno vērtību C ++.

HashMapKlase piedāvā arī dažus no variācijas replace()metodi. Lai uzzinātu vairāk, apmeklējiet vietni

  • Java HashMap aizstāt ()
  • Java HashMap aizstāj visu ()

4. Noņemiet HashMap elementus

Lai noņemtu elementus no hashmap, mēs varam izmantot metodi remove (). Piemēram,

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

Rezultāts

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Noņemtā vērtība: Python Atjaunināts HashMap: (1 = Java, 3 = JavaScript)

Šeit remove()metode kā parametru ņem atslēgu . Pēc tam tas atgriež ar atslēgu saistīto vērtību un noņem ierakstu .

Mēs varam arī noņemt ierakstu tikai ar noteiktiem nosacījumiem. Piemēram,

 remove(2, "C++");

Here, the remove() method only removes the entry if the key 2 is associated with the value C++. Since 2 is not associated with C++, it doesn't remove the entry.

To learn more, visit Java HashMap remove().

Other Methods of HashMap

Method Description
clear() removes all mappings from the HashMap
compute() computes a new value for the specified key
computeIfAbsent() computes value if a mapping for the key is not present
computeIfPresent() computes a value for mapping if the key is present
merge() merges the specified mapping to the HashMap
clone() makes the copy of the HashMap
containsKey() checks if the specified key is present in Hashmap
containsValue() checks if Hashmap contains the specified value
size() returns the number of items in HashMap
isEmpty() 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.

Ja papildu parametri netiek izmantoti, noklusējuma jauda būs 16 un noklusējuma slodzes koeficients būs 0,75 .

Interesanti raksti...