I den här handledningen lär vi oss om Java HashMap-klassen och dess olika funktioner med hjälp av exempel.
Den HashMap
klass av samlingar ram Java tillhandahåller funktionaliteten hos hashtabellen datastruktur.
Det lagrar element i nyckel- / värdepar . Här är nycklar unika identifierare som används för att associera varje värde på en karta.
Den HashMap
klass implementerar Map-gränssnittet.
![](https://cdn.wiki-base.com/7339188/java_hashmap_with_examples.png.webp)
Skapa en HashMap
För att skapa en hash-karta måste vi först importera java.util.HashMap
paketet. När vi väl har importerat paketet, här är hur vi kan skapa hashmaps i Java.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
I koden ovan har vi skapat en hashmap med namnen. Här representerar K nyckeltypen och V representerar typen av värden. Till exempel,
HashMap numbers = new HashMap();
Här typen av nycklar är String
och vilken typ av värderingar är Integer
.
Exempel 1: Skapa 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 exemplet ovan har vi skapat HashMap
namngivna språk.
Här har vi använt put()
metoden för att lägga till element till hashmap. Vi lär oss mer om put()
metoden senare i den här handledningen.
Grundläggande funktioner på Java HashMap
I HashMap
klassen ger olika metoder för att utföra olika operationer på hashmaps. Vi kommer att titta på några vanliga arraylistoperationer i denna handledning:
- Lägg till element
- Åtkomstelement
- Ändra element
- Ta bort element
1. Lägg till element i en HashMap
För att lägga till ett enda element till hashmap använder vi klassens put()
metod HashMap
. Till exempel,
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
Initial HashMap: () HashMap efter put (): (En = 1, Två = 2, Tre = 3)
I exemplet ovan har vi skapat HashMap
namngivna nummer. Här har vi använt put()
metoden för att lägga till element i siffror.
Lägg märke till uttalandet,
numbers.put("One", 1);
Här skickar vi String
värdet One som nyckel och Integer
värde 1 som värde till put()
metoden.
Rekommenderade avläsningar
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Gå till HashMap-element
Vi kan använda get()
metoden för att komma åt värdet från hashmap. Till exempel,
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ärde vid index 1: Java
Lägg märke till uttrycket i exemplet ovan
languages.get(1);
Här get()
tar metoden nyckeln som argument och returnerar motsvarande värde associerat med nyckeln.
Vi kan också få tillgång till nycklar , värderingar och nyckel / värde par av HashMap som set vyer använder keySet()
, values()
och entrySet()
metoder respektive. Till exempel,
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) Nycklar: (1, 2, 3) Värden: (Java, Python, JavaScript) Nyckel- / värde mappningar: (1 = Java, 2 = Python, 3 = JavaScript )
I exemplet ovan har vi skapat en hashmap med namnet språk. Här får vi åtkomst till nycklarna , värdena och nyckel- / värdekartläggningarna från hashmap.
Rekommenderade avläsningar
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Java HashMap keySet ()
- Java HashMap-värden ()
- Java HashMap entrySet ()
3. Ändra HashMap-värde
Vi kan använda replace()
metoden för att ändra värdet som är associerat med en nyckel i en hashmap. Till exempel,
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); ) )
Produktion
Original HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap med ersättare (): (1 = Java, 2 = C ++, 3 = JavaScript)
I exemplet ovan har vi skapat en hashmap med namnet språk. Lägg märke till uttrycket,
languages.replace(2, "C++");
Här ändrar vi det värde som avses med nyckel 2 med det nya värdet 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.
Om de valfria parametrarna som inte används, kommer standardkapaciteten kommer att vara 16 och standardlastfaktorn kommer att vara 0,75 .