Map pada bahasa pemrograman Java 7d6as6da54
Map adalah bentuk struktur data yang berpasangan antara key-value. Key bersifat unik karena implementasinya menggunakan Set. Key dan value adalah object, bisa object apa saja, tipe data primitif tidak bisa dimasukkan ke dalam Map, juga tidak bisa dimasukkan ke semua jenis collection. Implementasi Map memberikan kemampuan untuk mencari value berdasarkan key, setiap kali kita dihadapkan pada permasalahan bagaimana caranya melakukan pencarian berdasarkan value kita bisa menggunakan Map ini. Map bergantung pada method equals dan hashCode untuk menentukan apakah dua buah key sama atau tidak, jadi kalau kita ingin menggunakan object dari class yang kita buat sendiri sebagai key, maka kedua method itu harus dioverride untuk menentukan bagaimana dua buah object dianggap sama atau tidak. HashMap adalah class yang mengimplementasikan interface Map, sifatnya adalah tidak terurut dan tidak teratur. Implementasi HashMap adalah yang paling efsien, implementasi Map lainya yang membutuhkan keterurutan atau keteraturan akan menambahkan komputasi tambahan sehingga kurang efsien dibanding dengan HashMap. HashMap memperbolehkan satu buah key dengan nilai null dan banyak key bukan null yang valuenya adalah null.
Method penting yang dimiliki oleh Map antara lain :
put(Object key, Object value); method yang digunakan untuk meletakkan pasangan key dan value
get(Object key); method digunakan untuk mendapatkan value dari key yang dimasukkan sebagai parameter
keySet(); digunakan untuk mendapatkan Set yang berisi semua key, biasanya kita ingin mendapatkan Set dari key ini kalau ingin mengambil nilai dalam Map satu per satu
Mari kita lihat contoh kode penggunaan Map. Kita akan membuat sebuah map dimana key adalah kota dan value adalah kumpulan Customer yang tinggal di kota tersebut. Tipe data key adalah String dan tipe data valuenya adalah List of Customer:
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class MapTest {
public static void main(String[] args) {
Map<String,List<Customer>> customerByCityMap =
new HashMap<String,List<Customer>>();
List<Customer> jakartaCust = new ArrayList<Customer>();
Customer a = new Customer();
a.setId(1l);
jakartaCust.add(a);
Customer b = new Customer();
b.setId(2l);
jakartaCust.add(b);
customerByCityMap.put("jakarta",jakartaCust);
List<Customer> surabayaCust = new ArrayList<Customer>();
Customer c = new Customer();
c.setId(3l);
surabayaCust.add(c);
customerByCityMap.put("surabaya",surabayaCust);
Set<String> keys = customerByCityMap.keySet();
Iterator<String> iterator = keys.iterator();
while(iterator.hasNext()) {
String key = iterator.next();
List<Customer> customers = customerByCityMap.get(key);
for(int i = 0;i < customers.size(); i++) {
Customer cust = customers.get(i);
System.out.println("kota : " + key + ", Customer id : " +
cust.getId());
}
}
}
}
hasil eksekusi kode di atas adalah :
$ javac MapTest.java Customer.java
$ java MapTest
kota : jakarta, Customer id : 1
kota : jakarta, Customer id : 2
kota : surabaya, Customer id : 3
$
Ada satu class lagi yang mengimplement Map interface sekaligus keynya diurutkan berdasarkan logic tertentu, yaitu class TreeSet. Kita akan membahas class TreeSet sekaligus HashSet setelah membahas bab Sorting di bawah ini.
No comments:
Post a Comment