У овом упутству ћемо научити о класи Јава ХасхМап и њеним разним операцијама уз помоћ примера.
HashMap
Класа у збирки оквира Јава обезбеђује функционалност структуре података хеш табеле.
Похрањује елементе у парове кључ / вредност . Овде су кључеви јединствени идентификатори који се користе за повезивање сваке вредности на мапи.
HashMap
Класа имплементира карти интерфејс.

Направите ХасхМап
Да бисмо креирали хеш мапу, прво морамо да увозимо java.util.HashMap
пакет. Једном када увозимо пакет, ево како можемо да креирамо хеш-мапе у Јави.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
У горњем коду креирали смо хеш-мапу названу бројеви. Овде К представља тип кључа, а В представља тип вредности. На пример,
HashMap numbers = new HashMap();
Овде је тип кључева , String
а тип вредности је Integer
.
Пример 1: Креирајте ХасхМап у Јави
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); ) )
Оутпут
ХасхМап: (Јава = 8, ЈаваСцрипт = 1, Питхон = 3)
У горњем примеру створили смо HashMap
именоване језике.
Овде смо користили put()
методу за додавање елемената у хеш-мапу. Више о put()
методи ћемо сазнати касније у овом водичу.
Основне операције на Јава ХасхМап-у
HashMap
Класа обезбеђује различите методе за обављање различитих операција на хасхмапс. У овом упутству ћемо погледати неке често коришћене арраилист операције:
- Додајте елементе
- Приступни елементи
- Промена елемената
- Уклоните елементе
1. Додајте елементе у ХасхМап
Да бисмо додали један елемент у хеш-мапу, користимо put()
метод HashMap
класе. На пример,
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); ) )
Оутпут
Почетна ХасхМап: () ХасхМап након пут (): (Оне = 1, Тво = 2, Тхрее = 3)
У горњем примеру створили смо HashMap
именоване бројеве. Овде смо користили put()
методу за додавање елемената бројевима.
Обратите пажњу на изјаву,
numbers.put("One", 1);
Овде методу преносимо String
вредност Оне као кључ и Integer
вредност 1 као вредност put()
.
Препоручена читања
- Јава ХасхМап пут ()
- Јава ХасхМап путАлл ()
- Јава ХасхМап путИфАбсент ()
2. Приступите елементима ХасхМап
get()
Методу можемо користити за приступ вредности из хеш-мапе. На пример,
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); ) )
Оутпут
ХасхМап: (1 = Јава, 2 = Питхон, 3 = ЈаваСцрипт) Вредност у индексу 1: Јава
У горњем примеру примети израз:
languages.get(1);
Овде get()
метода узима кључ као свој аргумент и враћа одговарајућу вредност повезану са кључем.
Такође, може приступити тастери , вредности и кључ / вредност пара за ХасхМап као сет виевс користе keySet()
, values()
и entrySet()
методе респективно. На пример,
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()); ) )
Оутпут
ХасхМап: (1 = Јава, 2 = Питхон, 3 = ЈаваСцрипт) Тастери: (1, 2, 3) Вредности: (Јава, Питхон, ЈаваСцрипт) Мапирање кључа / вредности: (1 = Јава, 2 = Питхон, 3 = ЈаваСцрипт )
У горњем примеру смо креирали хеш-мапу названу језици. Овде приступамо кључевима , вредностима и пресликавањима кључева / вредности са хеш-мапе.
Препоручена читања
- Јава ХасхМап гет ()
- Јава Хасхмап гетОрДефаулт ()
- Јава ХасхМап кеиСет ()
- Вредности Јава ХасхМап ()
- Јава ХасхМап ентриСет ()
3. Промените вредност ХасхМап-а
replace()
Методу можемо користити за промену вредности повезане са кључем у хешмапи. На пример,
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); ) )
Оутпут
Оригинална ХасхМап: (1 = Јава, 2 = Питхон, 3 = ЈаваСцрипт) ХасхМап користећи реплаце (): (1 = Јава, 2 = Ц ++, 3 = ЈаваСцрипт)
У горњем примеру смо креирали хеш-мапу названу језици. Примети израз,
languages.replace(2, "C++");
Овде вредност коју означава кључ 2 мењамо новом вредношћу Ц ++.
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.
Ако се не користи одговарајуће параметре, тада је уобичајени капацитет ће бити 16 , а подразумевани фактор оптерећења ће бити 0,75 .