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, nomor) dan 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
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 metodeambilNomordi atas, nilai kembalian dariinfo.get(nama)di-type-cast ke dalamString. Karena kembalian dari metodeget()bertipeObjectmaka type cast menjadi penting sebelum nilainya bisa digunakan.Dengan "membungkus"Mapdi dalam kelasBukuTelepon, 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 :)