Selles õpetuses õpime näidete abil Java HashMapi klassi ja selle erinevaid toiminguid.
HashMap
Klassi Java kogud raamistik annab funktsionaalsust hash tabeli andmed struktuuri.
See salvestab elemendid võtme / väärtuse paaridesse. Siin on võtmed unikaalsed identifikaatorid, mida kasutatakse iga väärtuse seostamiseks kaardil.
HashMap
Klassi rakendab Kaart liides.

Looge HashMap
Räsikaardi loomiseks peame java.util.HashMap
esmalt paketi importima . Kui pakett on imporditud, saate Java-s hashappe luua järgmiselt.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
Ülaltoodud koodis oleme loonud numbritega hashmapi. Siin tähistab K võtmetüüpi ja V väärtuste tüüpi. Näiteks,
HashMap numbers = new HashMap();
Siin tüüpi võtmed on String
ja millist tüüpi väärtused on Integer
.
Näide 1: looge Java-s HashMap
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); ) )
Väljund
HashMap: (Java = 8, JavaScript = 1, Python = 3)
Ülaltoodud näites oleme loonud HashMap
nimega keeled.
Siin oleme put()
meetodit kasutanud hashmapile elementide lisamiseks. Lisateavet put()
meetodi kohta leiate siit selles õpetuses.
Java HashMapi põhitoimingud
HashMap
Klassi pakub erinevaid meetodeid, et täita erinevaid operatsioone hashmaps. Vaatame selles õpetuses mõnda tavaliselt kasutatavat massiiviloendi toimingut:
- Lisage elemendid
- Juurdepääsu elemendid
- Elementide muutmine
- Eemaldage elemendid
1. Lisage elemendid HashMapile
Üksiku elemendi lisamiseks hashmapile kasutame klassi put()
meetodit HashMap
. Näiteks,
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); ) )
Väljund
Esialgne HashMap: () HashMap pärast panemist (): (Üks = 1, Kaks = 2, Kolm = 3)
Ülaltoodud näites oleme loonud HashMap
nimega numbrid. Siin kasutasime put()
meetodit numbritele elementide lisamiseks.
Pange tähele avaldust,
numbers.put("One", 1);
Siinkohal edastame meetodile String
väärtuse Üks kui võtme ja Integer
väärtuse 1 put()
.
Soovitatavad lugemised
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Juurdepääs HashMapi elementidele
Me saame kasutada get()
meetodit, et pääseda väärtusele hashmapist. Näiteks,
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); ) )
Väljund
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Väärtus indeksis 1: Java
Ülalolevas näites pange tähele väljendit
languages.get(1);
Siin get()
võtab meetod argumendiks võtme ja tagastab võtmega seotud vastava väärtuse .
Me ei saa ligi ka võtmed , väärtusi ja võtme / väärtuse paarid HashMap nagu komplekt seisukohti kasutades keySet()
, values()
ja entrySet()
meetodid vastavalt. Näiteks,
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()); ) )
Väljund
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Võtmed: (1, 2, 3) Väärtused: (Java, Python, JavaScript) Võtme / väärtuse vastendused: (1 = Java, 2 = Python, 3 = JavaScript )
Ülaltoodud näites oleme loonud hashmapi nimega keeled. Siin pääseme hashmapist võtmetele , väärtustele ja võtmete / väärtuste vastendustele juurde.
Soovitatavad lugemised
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Java HashMapi võtmekomplekt ()
- Java HashMapi väärtused ()
- Java HashMapi sisestuskomplekt ()
3. Muutke HashMapi väärtust
Selle replace()
meetodi abil saame muuta hashmapi võtmega seotud väärtust. Näiteks,
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); ) )
Väljund
Algne HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap, kasutades asendust (): (1 = Java, 2 = C ++, 3 = JavaScript)
Ülaltoodud näites oleme loonud hashmapi nimega keeled. Pange tähele väljendit
languages.replace(2, "C++");
Siin muudame võtmes 2 viidatud väärtust uue väärtusega 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.
Kui vabatahtlik parameetrid ei kasutata, siis vaikimisi võimsus on 16 ja vaikimisi täituvus on 0.75 .