Selasa, 27 Desember 2011

MAP

Map adalah bentuk struktur data yang berpasangan antara key-value. Key bersifat unik karena implementasi menggunakan Set. Key dan value adalah object, bisa object apa saja, tipe data primitif tidak bisa dimasukkan kedalam Map, juga tidak bisa dimasukkan kedalam semua jenis collection.

Implementasi Map memberi kesempatan untuk mencari value berdasarkan key. Setiap dihadapi masalah pencarian berdasarkan value dapat digunakan Map. Map tergantung method equals dan hashCode untuk menentukan apakah dua buah key sama atau tidak, jadi kalau ingin menggunakan object dari class buatan sendiri sebagai key, maka kedua object tersebut harus dioverride untuk menentukan bagaimana kedua object dianggap sama atau tidak.

HashMap adalah class yang mengimplementasikan interface Map. Sifatnya adalah tidak terurut tidak teratur. Implementasi HashMap adalah yang paling efesien implementasi yang lain membutuhkan keteraturan dan keteruturan yang akan menambah komputing sehingga kurang efisien dibandingkan HashMap. HashMap membolehkan satu buah key dengan nilai null dan banyak key bukan null yang valuenya adalah null.

method penting yang dimiliki Map
put (Object key, Object value) method yang digunakan untuk meletakkan pasangan key dengan value.
getObject(Object key) method yang digunakan untuk mendapatkan value dari key yang dimasukkan sebagai parameter.
keySet(); digunakan untuk mendapatkan Set yang berisi semua key, digunakan untuk mendapatkan Set dari key untuk mengambil nilai Map satu per satu.

Membuat Map dimana key adalah kota dan valuenya adalah kumpulan customer yang tinggal di kota tersebut.. Tipe data key adalah String dan tipe data value adalah List of Customer.

import java.util.Set;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;

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 " + cust.getId());
                                }
                       }
           }
 
}

kota Jakarta customer 1
kota Jakarta customer 2
kota Surabaya customer 3

Tidak ada komentar:

Posting Komentar