V tomto tutoriále sa pomocou príkladov dozvieme o triede Java HashMap a jej rôznych operáciách.
HashMap
Trieda zbierok rámca Java poskytuje funkcie dátové štruktúry hash tabuľky.
Ukladá prvky do párov kľúč / hodnota . Tu, kľúče sú jedinečné identifikátory spájať jednotlivé hodnoty na mape.
HashMap
Trieda implementuje rozhranie mapy.

Vytvorte HashMap
Aby sme vytvorili hashovaciu mapu, musíme najskôr importovať java.util.HashMap
balíček. Po importovaní balíka tu môžeme vytvárať hašovacie mapy v Jave.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
Vo vyššie uvedenom kóde sme vytvorili hashmapu pomenovanú čísla. Tu K predstavuje typ kľúča a V predstavuje typ hodnôt. Napríklad,
HashMap numbers = new HashMap();
Tu je druh kľúča je String
a typ hodnôt je Integer
.
Príklad 1: Vytvorenie HashMap v Jave
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ýkon
HashMap: (Java = 8, JavaScript = 1, Python = 3)
Vo vyššie uvedenom príklade sme vytvorili HashMap
pomenované jazyky.
Tu sme použili put()
metódu na pridanie prvkov do hashmapy. Viac o put()
metóde sa dozvieme ďalej v tomto návode.
Základné operácie na Java HashMap
HashMap
Trieda ponúka celý rad možností na vykonávanie rôznych operácií na hashmaps. V tomto výučbe sa pozrieme na niektoré bežne používané operácie s zoznamom polí:
- Pridajte prvky
- Prístupové prvky
- Zmena prvkov
- Odstrániť prvky
1. Pridajte prvky do HashMap
Na pridanie jedného prvku do hashmapy použijeme put()
metódu HashMap
triedy. Napríklad,
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ýkon
Počiatočná HashMap: () HashMap po vložení (): (Jeden = 1, Dva = 2, Tri = 3)
Vo vyššie uvedenom príklade sme vytvorili HashMap
pomenované čísla. Tu sme použili put()
metódu na pridanie prvkov k číslam.
Všimnite si vyhlásenie,
numbers.put("One", 1);
Tu odovzdávame metóde String
hodnotu One ako kľúč a Integer
hodnotu 1 ako hodnotu put()
.
Odporúčané čítania
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Prístup k prvkom HashMap
get()
Metódu môžeme použiť na prístup k hodnote z hashmapy. Napríklad,
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ýkon
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Hodnota v indexe 1: Java
Vo vyššie uvedenom príklade si všimnite výraz,
languages.get(1);
Tu get()
metóda berie kľúč ako svoj argument a vracia zodpovedajúcu hodnotu spojenú s kľúčom.
Môžeme tiež prístup k kľúče , hodnoty a kľúč / hodnota pary HashMap as výhľadom nastaviť pomocou keySet()
, values()
a entrySet()
metód, resp. Napríklad,
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ýkon
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Kľúče: (1, 2, 3) Hodnoty: (Java, Python, JavaScript) Mapovanie kľúča / hodnoty: (1 = Java, 2 = Python, 3 = JavaScript )
Vo vyššie uvedenom príklade sme vytvorili hashmapu s názvom jazyky. Tu pristupujeme ku kľúčom , hodnotám a mapovaniu kľúčov / hodnôt z hashmapy.
Odporúčané čítania
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Sada kľúčov Java HashMap ()
- Hodnoty Java HashMap ()
- Java HashMap entrySet ()
3. Zmeňte hodnotu HashMap
replace()
Metódu môžeme použiť na zmenu hodnoty spojenej s kľúčom v hashmape. Napríklad,
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ýkon
Originálna HashMap: (1 = Java, 2 = Python, 3 = JavaScript) HashMap pomocou replace (): (1 = Java, 2 = C ++, 3 = JavaScript)
Vo vyššie uvedenom príklade sme vytvorili hashmapu pomenovanú jazyky. Všimnite si výraz,
languages.replace(2, "C++");
Tu meníme hodnotu, na ktorú odkazuje kláves 2, s novou hodnotou C ++.
HashMap
Trieda tiež poskytuje niektoré variácie replace()
metódy. Ak sa chcete dozvedieť viac, navštívte stránku
- Java HashMap replace ()
- Java HashMap replaceAll ()
4. Odstráňte prvky HashMap
Na odstránenie prvkov z hashmapy môžeme použiť metódu remove (). Napríklad,
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); ) )
Výkon
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Odstránená hodnota: Python Aktualizovaná HashMap: (1 = Java, 3 = JavaScript)
Tu remove()
metóda berie kľúč ako svoj parameter. Potom vráti hodnotu spojenú s kľúčom a záznam odstráni .
Položku môžeme tiež odstrániť iba za určitých podmienok. Napríklad,
remove(2, "C++");
Tu remove()
metóda odstráni záznam iba vtedy, ak je kľúč 2 spojený s hodnotou C ++ . Pretože 2 nie je spojený s C ++ , záznam sa neodstráni.
Ak sa chcete dozvedieť viac, navštívte Java HashMap remove ().
Ďalšie metódy HashMap
Metóda | Popis |
---|---|
jasný() | odstráni všetky mapovania z HashMap |
vypočítať () | vypočíta novú hodnotu pre zadaný kľúč |
computeIfAbsent () | počíta hodnotu, ak nie je k dispozícii mapovanie pre kľúč |
computeIfPresent () | počíta hodnotu pre mapovanie, ak je kľúč prítomný |
zlúčiť() | zlúči zadané mapovanie do HashMap |
klon () | urobí kópiu HashMap |
containsKey () | skontroluje, či sa zadaný kľúč nachádza v Hashmape |
containsValue () | skontroluje, či Hashmap obsahuje zadanú hodnotu |
veľkosť () | vráti počet položiek v priečinku HashMap |
je prázdny() | 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.
V prípade, že voliteľné parametre nie sú použité, potom predvolený kapacita bude 16 a východiskový faktor zaťaženia bude 0.75 .