V tej vadnici bomo s pomočjo primerov spoznali razred Java HashMap in njegove različne operacije.
HashMap
Razred okviru Java zbirk zagotavlja funkcionalnost podatkovne strukture hash tabele.
Elemente shranjuje v parih ključ / vrednost . Tu so ključi edinstveni identifikatorji, ki se uporabljajo za povezovanje vsake vrednosti na zemljevidu.
HashMap
Razredu izvaja vmesnik Map.

Ustvari HashMap
Če želite ustvariti zemljevid zgoščevanja, moramo najprej uvoziti java.util.HashMap
paket. Ko uvozimo paket, tukaj je opisano, kako lahko v Javi ustvarimo hashmape.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
V zgornji kodi smo ustvarili hashmap z imenom številke. Tu K predstavlja tip ključa, V pa tip vrednosti. Na primer
HashMap numbers = new HashMap();
Tu je vrsta ključev je String
in vrsta vrednot je Integer
.
Primer 1: Ustvari HashMap v Javi
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); ) )
Izhod
HashMap: (Java = 8, JavaScript = 1, Python = 3)
V zgornjem primeru smo ustvarili HashMap
imenovane jezike.
Tu smo put()
metodo uporabili za dodajanje elementov v hashmap. Več o put()
metodi bomo izvedeli kasneje v tej vadnici.
Osnovne operacije na Java HashMap
HashMap
Razred določa različne metode za izvajanje različnih operacij na hashmaps. V tej vadnici si bomo ogledali nekatere pogosto uporabljene arraylist operacije:
- Dodaj elemente
- Dostopni elementi
- Spremeni elemente
- Odstranite elemente
1. V HashMap dodajte elemente
Za dodajanje enega elementa v hashmap uporabimo put()
metodo HashMap
razreda. Na primer
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); ) )
Izhod
Začetni HashMap: () HashMap po put (): (One = 1, Two = 2, Three = 3)
V zgornjem primeru smo ustvarili HashMap
imenovane številke. Tu smo put()
metodo uporabili za dodajanje elementov številkam.
Upoštevajte izjavo,
numbers.put("One", 1);
Tu posredujemo metodi String
vrednost One kot ključ in Integer
vrednost 1 kot vrednost put()
.
Priporočena branja
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Dostopite do elementov HashMap
Z get()
metodo lahko dostopamo do vrednosti iz hashmapa. Na primer
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); ) )
Izhod
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Vrednost v indeksu 1: Java
V zgornjem primeru opazite izraz,
languages.get(1);
Tu get()
metoda vzame ključ kot svoj argument in vrne ustrezno vrednost, povezano s ključem.
Mi lahko dostopate tudi tipke , vrednote in ključ / vrednost parov HashMap kot zastavljenih ogledov uporabo keySet()
, values()
in entrySet()
metode oz. Na primer
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()); ) )
Izhod
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Tipke: (1, 2, 3) Vrednosti: (Java, Python, JavaScript) Preslikave ključev / vrednosti: (1 = Java, 2 = Python, 3 = JavaScript )
V zgornjem primeru smo ustvarili hashmap z imenom jeziki. Tukaj dostopamo do ključev , vrednosti in preslikav ključev / vrednosti iz hashmapa.
Priporočena branja
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Java HashMap keySet ()
- Vrednosti Java HashMap ()
- Java HashMap entrySet ()
3. Spremenite vrednost HashMap
Z replace()
metodo lahko spremenimo vrednost, povezano s ključem v hashmapu. Na primer
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); ) )
Izhod
Izvirni HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap z uporabo replace (): (1 = Java, 2 = C ++, 3 = JavaScript)
V zgornjem primeru smo ustvarili hashmap z imenom jeziki. Upoštevajte izraz,
languages.replace(2, "C++");
Tu spremenimo vrednost, na katero se sklicuje tipka 2, z novo vrednostjo C ++.
HashMap
Razred določa tudi nekaj različic replace()
metode. Če želite izvedeti več, obiščite
- Zamenjava Java HashMap ()
- Java HashMap replaceAll ()
4. Odstranite elemente HashMap
Če želimo elemente odstraniti iz hashmapa, lahko uporabimo metodo remove (). Na primer
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); ) )
Izhod
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Odstranjena vrednost: Python Posodobljen HashMap: (1 = Java, 3 = JavaScript)
Tu remove()
metoda za svoj parameter vzame ključ . Nato vrne vrednost, povezano s ključem, in odstrani vnos .
Vnos lahko odstranimo tudi le pod določenimi pogoji. Na primer
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.
Če opcijski parametri ne uporablja, potem je privzeti zmogljivost bo 16 in privzeti faktor obremenitve bo 0,75 .