Java HashMap (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang kelas Java HashMap dan berbagai operasinya dengan bantuan contoh.

The HashMapkelas 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 HashMapkelas mengimplementasikan antarmuka Peta.

Implementasi Java HashMap

Buat HashMap

Untuk membuat peta hash, kita harus mengimpor java.util.HashMappaketnya 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 Stringdan 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 HashMapbahasa 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 HashMapkelas 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 HashMapkelas. 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 HashMapnomor bernama. Di sini, kami telah menggunakan put()metode untuk menambahkan elemen ke angka.

Perhatikan pernyataannya,

 numbers.put("One", 1);

Di sini, kita meneruskan Stringnilai One sebagai kunci dan Integernilai 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 HashMapkelas 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 Hashmapberisi 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 .

Artikel yang menarik...