Dalam tutorial ini, kita akan belajar tentang kelas Java HashMap dan berbagai operasinya dengan bantuan contoh.
The HashMap
kelas dari koleksi kerangka Java menyediakan fungsi struktur data tabel hash.
Ini menyimpan elemen dalam pasangan kunci / nilai . Di sini, kunci adalah pengenal unik yang digunakan untuk mengaitkan setiap nilai pada peta.
The HashMap
kelas mengimplementasikan antarmuka Peta.

Buat HashMap
Untuk membuat peta hash, kita harus mengimpor java.util.HashMap
paketnya terlebih dahulu. Setelah kami mengimpor paket, berikut adalah cara membuat hashmaps di Java.
// hashMap creation with 8 capacity and 0.6 load factor HashMap numbers = new HashMap();
Pada kode di atas, kami telah membuat hashmap bernama angka. Di sini, K mewakili jenis kunci dan V mewakili jenis nilai. Sebagai contoh,
HashMap numbers = new HashMap();
Di sini, jenis kunci adalah String
dan jenis nilai adalah Integer
.
Contoh 1: Buat HashMap di 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); ) )
Keluaran
HashMap: (Java = 8, JavaScript = 1, Python = 3)
Dalam contoh di atas, kami telah membuat HashMap
bahasa bernama.
Di sini, kami telah menggunakan put()
metode untuk menambahkan elemen ke hashmap. Kita akan mempelajari lebih lanjut tentang put()
metode ini nanti di tutorial ini.
Operasi Dasar di Java HashMap
The HashMap
kelas menyediakan berbagai metode untuk melakukan operasi yang berbeda pada hashmaps. Kami akan melihat beberapa operasi daftar larik yang umum digunakan dalam tutorial ini:
- Tambahkan elemen
- Elemen akses
- Ubah elemen
- Hapus elemen
1. Tambahkan elemen ke HashMap
Untuk menambahkan satu elemen ke hashmap, kami menggunakan put()
metode HashMap
kelas. Sebagai contoh,
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); ) )
Keluaran
HashMap Awal: () HashMap setelah put (): (Satu = 1, Dua = 2, Tiga = 3)
Dalam contoh di atas, kami telah membuat HashMap
nomor bernama. Di sini, kami telah menggunakan put()
metode untuk menambahkan elemen ke angka.
Perhatikan pernyataannya,
numbers.put("One", 1);
Di sini, kita meneruskan String
nilai One sebagai kunci dan Integer
nilai 1 sebagai nilai ke put()
metode.
Bacaan yang Direkomendasikan
- Java HashMap put ()
- Java HashMap putAll ()
- Java HashMap putIfAbsent ()
2. Akses Elemen HashMap
Kita bisa menggunakan get()
metode ini untuk mengakses nilai dari hashmap. Sebagai contoh,
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); ) )
Keluaran
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Nilai pada indeks 1: Java
Pada contoh di atas, perhatikan ekspresi,
languages.get(1);
Di sini, get()
metode mengambil kunci sebagai argumennya dan mengembalikan nilai terkait yang terkait dengan kunci tersebut.
Kami juga dapat mengakses kunci , nilai-nilai , dan kunci / nilai pasang hashmap sebagai pandangan set menggunakan keySet()
, values()
dan entrySet()
metode masing-masing. Sebagai contoh,
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()); ) )
Keluaran
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Key: (1, 2, 3) Nilai: (Java, Python, JavaScript) Key / Value mapping: (1 = Java, 2 = Python, 3 = JavaScript )
Dalam contoh di atas, kami telah membuat hashmap bernama bahasa. Di sini, kami mengakses kunci , nilai , dan pemetaan kunci / nilai dari hashmap.
Bacaan yang Direkomendasikan
- Java HashMap get ()
- Java Hashmap getOrDefault ()
- Java HashMap keySet ()
- Nilai Java HashMap ()
- Java HashMap entrySet ()
3. Ubah Nilai HashMap
Kita dapat menggunakan replace()
metode ini untuk mengubah nilai yang terkait dengan kunci dalam peta hash. Sebagai contoh,
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); ) )
Keluaran
HashMap Asli: (1 = Java, 2 = Python, 3 = JavaScript) HashMap menggunakan replace (): (1 = Java, 2 = C ++, 3 = JavaScript)
Dalam contoh di atas, kami telah membuat hashmap bernama bahasa. Perhatikan ekspresinya,
languages.replace(2, "C++");
Di sini, kami mengubah nilai yang dirujuk oleh kunci 2 dengan nilai baru C ++.
The HashMap
kelas juga menyediakan beberapa variasi replace()
metode. Untuk mempelajari lebih lanjut, kunjungi
- Java HashMap replace ()
- Java HashMap replaceAll ()
4. Hapus Elemen HashMap
Untuk menghapus elemen dari hashmap, kita bisa menggunakan metode remove (). Sebagai contoh,
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); ) )
Keluaran
HashMap: (1 = Java, 2 = Python, 3 = JavaScript) Nilai yang dihapus: Python Update HashMap: (1 = Java, 3 = JavaScript)
Di sini, remove()
metode mengambil kunci sebagai parameternya. Kemudian mengembalikan nilai yang terkait dengan kunci dan menghapus entri .
Kami juga dapat menghapus entri hanya dalam kondisi tertentu. Sebagai contoh,
remove(2, "C++");
Di sini, remove()
metode hanya menghapus entri jika kunci 2 dikaitkan dengan nilai C ++ . Karena 2 tidak terkait dengan C ++ , itu tidak menghapus entri.
Untuk mempelajari lebih lanjut, kunjungi Java HashMap remove ().
Metode HashMap Lainnya
metode | Deskripsi |
---|---|
bersih() | menghapus semua pemetaan dari HashMap |
menghitung() | menghitung nilai baru untuk kunci yang ditentukan |
computeIfAbsent () | menghitung nilai jika pemetaan untuk kunci tidak ada |
computeIfPresent () | menghitung nilai untuk pemetaan jika kuncinya ada |
menggabungkan() | menggabungkan pemetaan yang ditentukan ke HashMap |
klon() | membuat salinan HashMap |
containsKey () | memeriksa apakah kunci yang ditentukan ada di Hashmap |
containsValue () | memeriksa apakah Hashmap berisi nilai yang ditentukan |
ukuran() | mengembalikan jumlah item dalam HashMap |
kosong() | 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.
Jika parameter opsional tidak digunakan, maka kapasitas default adalah 16 dan faktor beban default adalah 0,75 .