Minggu, 27 April 2014

kelas Map (2)

Belajar Code...
Kelas Map

Java memiliki dua kelas yang mengimplementasikan interface Map, yaitu : TreeMap dan HashMap.

Dalam TreeMap, pasangan kunci/nilai disimpan secara berurutan dalam pohon terurut, yaitu diurut berdasarkan kuncinya. Supaya bisa bekerja dengan benar, maka hanya objek yang bisa dibandingkan saja yang bisa digunakan sebagai kunci. Artinya kelas kunci harus berupa kelas yang mengimplementasikan interface Comparable, atau Comparator harus diberikan pada konstruktornya pada saat TreeMap dibuat.

HashMap tidak menyimpan pasangan kunci/nilai dalam urutan tertentu, sehingga tidak ada batasan objek apa yang bisa disimpan di dalamnya. Hampir semua operasi dapat berjalan lebih cepat pada HashMap dibandingkan dengan TreeMap.

Secara umum, lebih baik menggunakan HashMap kecuali kita butuh struktur data dalam urutan tertentu yang hanya bisa dilakukan dengan TreeMap. Atau dengan kata lain, jika kita hanya menggunakan perintah put dan get, gunakan HashMap.


Misalnya progrma direktori telefon, yaitu pada kelas BukuTelepon yang memiliki pasangan nama/nomor telepon. Kelas ini memiliki operasi tambahEntri(nama, nomordan ambilNomor(nama), di mana nama dan nomor bertipe String.

Dalam aplikasi pemrograman sebenarnya, kita tidak perlu lagi membuat kelas baru untuk mengimplementasikan BukuTelepon tersebut, artinya kita bisa langsung menggunakanMap. Akan tetapi menggunakan Map mungkin memiliki sedikit kerugian, karena kita dipaksa harus menggunakan Object bukan String.

Jika ini masalahnya, maka kita bisa membuat kelas baru yang menggunakan Map dalam implementasinya, seperti berikut :

import java.util.HashMap;
public class BukuTelepon {
    // Menyimpan data telepon    private HashMap info = new HashMap();
    public void tambahEntri(String nama, String nomor) {    // Menyimpan nomor telepon pada nama yang sesuai     info.put(nama,nomor);    }
    public String ambilNomor(String nama) {   // Mengambil nomor telepon dari nama   // Kembalikan null jika tidak ada nomor telepon untuk nama tsb
     return (String)info.get(nama);   }
} // akhir kelas BukuTelepon


Dalam metode ambilNomor di atas, nilai kembalian dari info.get(nama) di-type-cast ke dalam String. Karena kembalian dari metode get() bertipe Object maka type cast menjadi penting sebelum nilainya bisa digunakan.
Dengan "membungkus" Map di dalam kelas BukuTelepon, kita menyembunyikan type-cast dalam implementasinya sehingga interaksi kelas ini dengan kelas lain yang menggunakannya menjadi lebih natural.
sumber: http://java.lyracc.com/print/131

Tidak ada komentar:

Posting Komentar

jangan lupa beri komentar dan join blognya yaa :)