Pada tutorial ArrayList, Anda telah mempelajari bahwa Array menyimpan item sebagai collection terurut, dan Anda harus mengaksesnya dengan sebuah indeks numerik (tipe int). Namun HashMap, menyimpan item dalam pasangan “key/value” (value disebut juga nilai) dan Anda dapat mengaksesnya dengan indeks berupa key yang merupakan suatu object (contoh String). HashMap adalah bagian dari API Collection pada Java.
Satu object digunakan sebagai key (indeks) ke object lainnya berupa value (nilai). HashMap bisa menyimpan pasangan key/value dengan tipe berbeda, seperti contoh, key String dan value Integer, atau tipe yang sama, seperti contoh, key String dan value String. Contoh :
import java.util.HashMap; // Mengimport class HashMap
HashMap<String, String> ibuKota = new HashMap<String, String>();
Menambahkan Item #
Class HashMap memiliki banyak method yang berguna. Seperti contoh, untuk menambahkan item, gunakan method put(). Contoh :
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
System.out.println(ibuKota);
}
}
Output :
{Inggris=London, USA=Washington DC, Jerman=Berlin, Indonesia=Jakarta}
Mengakses Item #
Untuk mengakses nilai dari HashMap, gunakan method get() dan masukkan key-nya. Contoh :
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
System.out.println(ibuKota.get("Inggris"));
}
}
Output :
London
Menghapus Item #
Untuk menghapus item, gunakan method remove() dan masukkan key-nya. Contoh :
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
ibuKota.remove("Inggris");
System.out.println(ibuKota);
}
}
Output :
{USA=Washington DC, Jerman=Berlin, Indonesia=Jakarta}
Untuk menghapus semua item, gunakan method clear(). Contoh :
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
ibuKota.clear();
System.out.println(ibuKota);
}
}
Output :
{}
Ukuran HashMap #
Untuk mencari berapa banyak item, gunakan method size(). Contoh :
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
System.out.println(ibuKota.size());
}
}
Output :
4
Loop Melalui HashMap #
Untuk melakukan iterasi melalui item HashMap gunakan for-each. Gunakan method keySet() jika Anda hanya ingin menggunakan key-nya, dan gunakan method values() jika Anda hanya ingin menggunakan value-nya. Contoh :
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
for (String i : ibuKota.keySet()) {
System.out.println(i);
}
}
}
Output :
Inggris
USA
Jerman
Indonesia
Contoh di atas memperlihatkan iterasi kepada suatu HashMap dengan menggunakan key.
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
for (String i : ibuKota.values()) {
System.out.println(i);
}
}
}
Output :
London
Washington DC
Berlin
Jakarta
Contoh di atas memperlihatkan iterasi kepada suatu HashMap dengan menggunakan value.
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut ibuKota
HashMap<String, String> ibuKota = new HashMap<String, String>();
// Menambahkan kunci (key) dan nilai (value) (Negara, Kota)
ibuKota.put("Inggris", "London");
ibuKota.put("Jerman", "Berlin");
ibuKota.put("Indonesia", "Jakarta");
ibuKota.put("USA", "Washington DC");
// Mencetak kunci dan nilai
for (String i : ibuKota.keySet()) {
System.out.println("Kunci(Key): " + i + " nilai(value): " + ibuKota.get(i));
}
}
}
Output :
Kunci(Key): Inggris nilai(value): London
Kunci(Key): USA nilai(value): Washington DC
Kunci(Key): Jerman nilai(value): Berlin
Kunci(Key): Indonesia nilai(value): Jakarta
Contoh di atas memperlihatkan iterasi kepada suatu HashMap dengan menggunakan key untuk mendapatkan nilai setiap key dan juga nilai setiap value.
Catatan: iterasi adalah mengakses nilai-nilai yang disimpan pada Collection satu per-satu
Tipe Lainnya #
Key dan value di dalam sebuah HashMap sebenarnya adalah object. Pada contoh di atas, kita menggunakan object tipe “String”. Ingat bahwa String di Java merupakan sebuah object (bukan tipe primitif). Untuk menggunakan tipe lainnya, seperti int, Anda harus menentukan wrapper class (wrapper class) yang setara yaitu Integer. Untuk tipe primitif lain, gunakan Boolean untuk boolean, Character untuk karakter, Double untuk double, dll. Contoh :
// Mengimport class HashMap
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Membuat object HashMap yang disebut orang
HashMap<String, Integer> orang = new HashMap<String, Integer>();
// Menambahkan kunci dan nilainya (nama, umur)
orang.put("Ujang", 32);
orang.put("Dadang", 23);
orang.put("Asep", 55);
for (String i : orang.keySet()) {
System.out.println("Kunci (key): " + i + " Nilai (Value): " + orang.get(i));
}
}
}
Output :
Kunci (key): Asep Nilai (Value): 55
Kunci (key): Ujang Nilai (Value): 32
Kunci (key): Dadang Nilai (Value): 23