Panduan WeakHashMap Class Java: Untuk Pemula
Pengenalan
Halo kepada masa depan pemrogram Java! Hari ini, kita akan menyelam ke dunia yang menarik WeakHashMap di Java. Jangan khawatir jika Anda belum pernah mendengar tentang itu sebelumnya – kita akan memulai dari awal dan bergerak ke atas. Pada akhir tutorial ini, Anda akan menjadi ahli WeakHashMap!
Apa itu WeakHashMap?
Bayangkan Anda sedang mengorganisir sebuah pesta besar, dan Anda memiliki daftar tamu. Tetapi ini bukanlah daftar tamu biasa – ini adalah daftar tamu yang secara otomatis menghapus orang-orang yang tidak dapat hadir lagi. Itu jenisnya seperti apa yang WeakHashMap lakukan di Java, tetapi dengan objek sebagai ganti tamu pesta!
WeakHashMap adalah jenis khusus Map di Java yang memungkinkan kunci-kunci untuk dikumpulkan kembali oleh pengumpul sampah saat mereka tidak lagi digunakan di tempat lain dalam program Anda. Ini bisa benar-benar berguna saat Anda ingin membuat cache yang tidak menghalangi objek dari dikosongkan saat mereka tidak lagi diperlukan.
Deklarasi Kelas
Ayo kita mulai dengan melihat bagaimana kita mendeklarasikan WeakHashMap:
import java.util.WeakHashMap;
public class WeakHashMapExample {
public static void main(String[] args) {
WeakHashMap<String, Integer> myWeakMap = new WeakHashMap<>();
}
}
Dalam contoh ini, kita membuat WeakHashMap yang menggunakan objek String sebagai kunci dan objek Integer sebagai nilai. Bagian <String, Integer>
disebut "generics" – itu seperti memberitahu Java jenis objek apa yang ingin kita simpan di peta kita.
Konstruktor Kelas
WeakHashMap datang dengan empat konstruktor yang berbeda. Mari kita lihat masing-masing dari mereka:
-
Konstruktor default:
WeakHashMap<String, Integer> map1 = new WeakHashMap<>();
Ini membuat WeakHashMap kosong dengan kapasitas awal default (16) dan faktor beban (0.75).
-
Konstruktor dengan kapasitas awal:
WeakHashMap<String, Integer> map2 = new WeakHashMap<>(100);
Ini membuat WeakHashMap dengan kapasitas awal yang ditentukan dan faktor beban default.
-
Konstruktor dengan kapasitas awal dan faktor beban:
WeakHashMap<String, Integer> map3 = new WeakHashMap<>(100, 0.8f);
Ini membuat WeakHashMap dengan kapasitas awal dan faktor beban yang ditentukan.
-
Konstruktor dengan Map lain:
Map<String, Integer> existingMap = new HashMap<>(); existingMap.put("Alice", 25); existingMap.put("Bob", 30); WeakHashMap<String, Integer> map4 = new WeakHashMap<>(existingMap);
Ini membuat WeakHashMap dengan pemetaan yang sama seperti Map yang ditentukan.
Metode Kelas
WeakHashMap menyediakan beberapa metode untuk memanipulasi dan mengakses kontennya. Berikut adalah tabel beberapa metode yang paling umum digunakan:
Metode | Deskripsi |
---|---|
put(K key, V value) | Menambahkan pasangan kunci-nilai ke peta |
get(Object key) | Mengambil nilai yang terkait dengan kunci yang ditentukan |
remove(Object key) | Menghapus pemetaan untuk kunci yang ditentukan |
size() | Mengembalikan jumlah pemetaan kunci-nilai di peta |
clear() | Menghapus semua pemetaan dari peta |
containsKey(Object key) | Mengembalikan true jika peta berisi kunci yang ditentukan |
containsValue(Object value) | Mengembalikan true jika peta berisi nilai yang ditentukan |
isEmpty() | Mengembalikan true jika peta tidak berisi pemetaan kunci-nilai |
Mari kita lihat beberapa dari metode ini dalam aksi:
WeakHashMap<String, Integer> ageMap = new WeakHashMap<>();
// Menambahkan pasangan kunci-nilai
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);
ageMap.put("Charlie", 35);
// Mengambil nilai
System.out.println("Umur Alice: " + ageMap.get("Alice")); // Output: Umur Alice: 25
// Memeriksa jika kunci ada
System.out.println("Apakah David di peta? " + ageMap.containsKey("David")); // Output: Apakah David di peta? false
// Menghapus pasangan kunci-nilai
ageMap.remove("Bob");
System.out.println("Ukuran peta setelah menghapus Bob: " + ageMap.size()); // Output: Ukuran peta setelah menghapus Bob: 2
// Membersihkan peta
ageMap.clear();
System.out.println("Apakah peta kosong? " + ageMap.isEmpty()); // Output: Apakah peta kosong? true
Metode Yang Dikekalkan
WeakHashMap mengikuti metode dari kelas induk dan antarmuka mereka. Berikut adalah beberapa metode yang dikekal yang penting:
Dikekalkan Dari | Metode |
---|---|
java.util.AbstractMap | clone(), equals(), hashCode(), toString() |
java.util.Map | entrySet(), keySet(), values() |
java.lang.Object | finalize(), getClass(), notify(), notifyAll(), wait() |
Contoh Menambahkan Pasangan Kunci-Nilai ke WeakHashMap Dengan Pasangan Integer, Integer
Sekarang, mari kita lihat contoh yang lebih lengkap menggunakan WeakHashMap dengan kunci dan nilai Integer:
import java.util.WeakHashMap;
public class WeakHashMapExample {
public static void main(String[] args) {
WeakHashMap<Integer, Integer> squareMap = new WeakHashMap<>();
// Menambahkan pasangan kunci-nilai
for (int i = 1; i <= 5; i++) {
squareMap.put(i, i * i);
}
System.out.println("Peta awal: " + squareMap);
// Mengakses nilai
System.out.println("Kuadrat dari 3: " + squareMap.get(3));
// Menghapus pasangan kunci-nilai
squareMap.remove(2);
System.out.println("Peta setelah menghapus 2: " + squareMap);
// Memeriksa jika kunci ada
System.out.println("Apakah peta berisi 4? " + squareMap.containsKey(4));
// Memeriksa jika nilai ada
System.out.println("Apakah peta berisi nilai 16? " + squareMap.containsValue(16));
// Mengulang peta
System.out.println("Mengulang peta:");
for (Integer key : squareMap.keySet()) {
System.out.println("Kunci: " + key + ", Nilai: " + squareMap.get(key));
}
}
}
Output
Saat Anda menjalankan kode ini, Anda akan melihat output yang mirip dengan ini:
Peta awal: {5=25, 4=16, 3=9, 2=4, 1=1}
Kuadrat dari 3: 9
Peta setelah menghapus 2: {5=25, 4=16, 3=9, 1=1}
Apakah peta berisi 4? true
Apakah peta berisi nilai 16? true
Mengulang peta:
Kunci: 5, Nilai: 25
Kunci: 4, Nilai: 16
Kunci: 3, Nilai: 9
Kunci: 1, Nilai: 1
Dan itu sudah! Anda baru saja mengambil langkah pertama Anda ke dunia WeakHashMap di Java. Ingat, kekuatan real WeakHashMap datang dari kemampuannya untuk mengizinkan kunci untuk dikumpulkan kembali oleh pengumpul sampah saat mereka tidak lagi dirujuk di tempat lain dalam program Anda. Ini bisa sangat berguna dalam beberapa skenario, seperti mengimplementasikan cache atau mengelola data sementara.
Sebagai Anda terus menjalankan perjalanan Java Anda, Anda akan menemukan lebih dan lebih banyak situasi di mana WeakHashMap bisa menjadi alat yang berharga di rak perangkat lunak pemrograman Anda. Tetap latihan, terus eksplorasi, dan yang paling penting, nikmati coding!
Credits: Image by storyset