I denne opplæringen vil vi lære om Java HashMap-klassen og dens forskjellige operasjoner ved hjelp av eksempler.
Den HashMap
klasse av Java-samlingene rammeverk inneholder funksjonaliteten til den nummertabellen datastrukturen.
Den lagrer elementer i nøkkel / verdipar. Her er nøkler unike identifikatorer som brukes til å knytte hver verdi på et kart.
Den HashMap
klassen implementerer kartgrensesnitt.
![](https://cdn.wiki-base.com/7339188/java_hashmap_with_examples.png.webp)
Lag et HashMap
For å lage et hash-kart, må vi først importere java.util.HashMap
pakken. Når vi har importert pakken, kan du lage hashmaps i Java her.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
I ovennevnte kode har vi opprettet en hashmap med navn. Her representerer K nøkkeltypen og V representerer typen verdier. For eksempel,
HashMap numbers = new HashMap();
Her, type nøkler er String
og hvilken type verdier er Integer
.
Eksempel 1: Opprett HashMap i 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); ) )
Produksjon
HashMap: (Java = 8, JavaScript = 1, Python = 3)
I eksemplet ovenfor har vi opprettet et HashMap
navngitt språk.
Her har vi brukt put()
metoden for å legge til elementer i hashmap. Vi vil lære mer om put()
metoden senere i denne opplæringen.
Grunnleggende operasjoner på Java HashMap
Den HashMap
klasse gir ulike metoder for å utføre forskjellige operasjoner på hashmaps. Vi vil se på noen vanlige arraylisteoperasjoner i denne opplæringen:
- Legg til elementer
- Tilgangselementer
- Endre elementer
- Fjern elementene
1. Legg til elementer i et HashMap
For å legge til et enkelt element i hashmap, bruker vi put()
metoden i HashMap
klassen. For eksempel,
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); ) )
Produksjon
Innledende HashMap: () HashMap etter put (): (One = 1, Two = 2, Three = 3)
I eksemplet ovenfor har vi opprettet HashMap
navngitte tall. Her har vi brukt put()
metoden for å legge til elementer i tall.
Legg merke til uttalelsen,
numbers.put("One", 1);
Her sender vi String
verdien One som nøkkel og Integer
verdi 1 som verdi til put()
metoden.
Anbefalte målinger
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Få tilgang til HashMap-elementer
Vi kan bruke get()
metoden for å få tilgang til verdien fra hashmap. For eksempel,
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); ) )
Produksjon
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Verdi ved indeks 1: Java
Legg merke til uttrykket i eksemplet ovenfor,
languages.get(1);
Her get()
tar metoden nøkkelen som argument og returnerer den tilsvarende verdien som er knyttet til nøkkelen.
Vi har også tilgang til nøkler , verdier , og nøkkel- / parene i HashMap som visninger innstilles ved hjelp av keySet()
, values()
og entrySet()
fremgangsmåter henholdsvis. For eksempel,
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()); ) )
Produksjon
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Taster: (1, 2, 3) Verdier: (Java, Python, JavaScript) Nøkkel- / verdikartlegginger: (1 = Java, 2 = Python, 3 = JavaScript )
I eksemplet ovenfor har vi opprettet en hashmap som heter språk. Her får vi tilgang til nøklene , verdiene og nøkkel- / verdikartleggingen fra hashmap.
Anbefalte målinger
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Java HashMap keySet ()
- Java HashMap-verdier ()
- Java HashMap entrySet ()
3. Endre HashMap-verdi
Vi kan bruke replace()
metoden til å endre verdien assosiert med en nøkkel i et hashmap. For eksempel,
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); ) )
Produksjon
Original HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap ved hjelp av erstatte (): (1 = Java, 2 = C ++, 3 = JavaScript)
I eksemplet ovenfor har vi opprettet en hashmap som heter språk. Legg merke til uttrykket,
languages.replace(2, "C++");
Her endrer vi verdien det er referert til av nøkkel 2 med den nye verdien C ++.
The HashMap
class also provides some variations of the replace()
method. To learn more, visit
- Java HashMap replace()
- Java HashMap replaceAll()
4. Remove HashMap Elements
To remove elements from a hashmap, we can use the remove() method. For example,
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); ) )
Output
HashMap: (1=Java, 2=Python, 3=JavaScript) Removed value: Python Updated HashMap: (1=Java, 3=JavaScript)
Here, the remove()
method takes the key as its parameter. It then returns the value associated with the key and removes the entry.
We can also remove the entry only under certain conditions. For example,
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.
Dersom valgfrie parametere ikke anvendes, da den standardkapasiteten vil være 16 og den standard belastningsfaktoren vil være 0,75 .