Java HashMap (med eksempler)

I denne vejledning lærer vi om Java HashMap-klassen og dens forskellige operationer ved hjælp af eksempler.

Den HashMapklasse af Java kollektioner rammer giver funktionaliteten af hash tabellen datastruktur.

Det gemmer elementer i nøgle / værdipar. Her er nøgler unikke identifikatorer, der bruges til at knytte hver værdi til et kort.

Den HashMapklasse implementerer Map interfacet.

Java HashMap-implementering

Opret et HashMap

For at oprette et hash-kort skal vi først importere java.util.HashMappakken. Når vi først har importeret pakken, kan du oprette hashmaps i Java her.

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

I ovenstående kode har vi oprettet et hash-kort med navnet numre. Her repræsenterer K nøgletypen, og V repræsenterer typen af ​​værdier. For eksempel,

 HashMap numbers = new HashMap();

Her er typen af nøgler , Stringog typen af værdier er Integer.

Eksempel 1: Opret 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); ) )

Produktion

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

I eksemplet ovenfor har vi oprettet et HashMapnavngivet sprog.

Her har vi brugt put()metoden til at tilføje elementer til hashmap. Vi lærer mere om put()metoden senere i denne vejledning.

Grundlæggende funktioner på Java HashMap

Den HashMapklasse giver forskellige metoder til at udføre forskellige operationer på hashmaps. Vi vil se på nogle almindeligt anvendte arraylist-operationer i denne vejledning:

  • Tilføj elementer
  • Adgangselementer
  • Skift elementer
  • Fjern elementer

1. Føj elementer til et HashMap

For at tilføje et enkelt element til hashmap bruger vi put()metoden i HashMapklassen. 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); ) )

Produktion

 Indledende HashMap: () HashMap efter put (): (En = 1, To = 2, Tre = 3)

I ovenstående eksempel har vi oprettet et HashMapnavngivet nummer. Her har vi brugt put()metoden til at tilføje elementer til tal.

Bemærk erklæringen,

 numbers.put("One", 1);

Her sender vi Stringværdien Én som nøgle og Integerværdi 1 som værdi til put()metoden.

Anbefalede målinger

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

2. Få adgang til HashMap-elementer

Vi kan bruge get()metoden til at få adgang til værdien 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); ) )

Produktion

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Værdi ved indeks 1: Java

I ovenstående eksempel bemærk udtrykket,

 languages.get(1);

Her get()tager metoden nøglen som argument og returnerer den tilsvarende værdi, der er knyttet til nøglen.

Vi kan også få adgang til de nøgler , værdier og nøgle / værdi par af HashMap som sæt visninger under anvendelse keySet(), values()og entrySet()metoder hhv. 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()); ) )

Produktion

 HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Taster: (1, 2, 3) Værdier: (Java, Python, JavaScript) Nøgle- / værditilknytninger: (1 = Java, 2 = Python, 3 = JavaScript )

In the above example, we have created a hashmap named languages. Here, we are accessing the keys, values, and key/value mappings from the hashmap.

Recommended Readings

  • Java HashMap get()
  • Java Hashmap getOrDefault()
  • Java HashMap keySet()
  • Java HashMap values()
  • Java HashMap entrySet()

3. Change HashMap Value

We can use the replace() method to change the value associated with a key in a hashmap. 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("Original HashMap: " + languages); // change element with key 2 languages.replace(2, "C++"); System.out.println("HashMap using replace(): " + languages); ) )

Output

 Original HashMap: (1=Java, 2=Python, 3=JavaScript) HashMap using replace(): (1=Java, 2=C++, 3=JavaScript)

In the above example, we have created a hashmap named languages. Notice the expression,

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

Here, we are changing the value referred to by key 2 with the new value 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.

Hvis det ikke anvendes de valgfrie parametre, så standard kapacitet vil være 16 og standard load factor vil være 0,75 .

Interessante artikler...