Kelas Java Hashtable

Pengenalan

Hai di sana, penyihir Java masa depan! Hari ini, kita akan memulakan perjalanan yang menarik ke atas dunia Java Hashtables. Saya tahu apa yang mungkin anda fikirkan: "Hashtables? Ia terdengar seperti menonton cat kering!" Tetapi percayalah, sekali anda memahami kekuatan Hashtables, anda akan lihat bagaimana ia dapat membuat hidup pengoding anda jadi lebih mudah.

Java - Hashtable

Bayangkan anda cuba untuk menguruskan koleksi rakit penyepit ekstensif anda (kerana siapa yang tidak ada salah satu dari itu, kan?). Anda boleh hanya meletakkan mereka semua di atas rak besar, tetapi kemudian mencari rakit penyepit penyelamat kesukaan anda akan menjadi mimpi buruk. Itu di mana Hashtable masuk - ia seperti memberikan setiap rakit rak tempat sendiri dengan label, jadi anda boleh cari rakit mana saja dengan cepat!

Pengisytiharan Kelas

Mari kita mula dengan asas. Dalam Java, Hashtable diisytiharkan seperti ini:

public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable

Jangan khuatirkan diri anda! Ini hanya cara Java untuk menyatakan, "Hei, saya adalah Hashtable, dan saya boleh bekerja dengan jenis jenis kunci (K) dan nilai (V) yang berbeza." Pilihannya sebagai wadah pintar yang boleh menahan pasangan benda, seperti nama (kunci) dan nombor telefon (nilai).

Konstruktor Kelas

Sekarang, mari lihat bagaimana kita boleh membuat Hashtable. Ia seperti membina rak rakit penyepit anda - anda ada beberapa pilihan:

// Membuat Hashtable kosong
Hashtable<String, Integer> duckCollection = new Hashtable<>();

// Membuat Hashtable dengan kapasiti awal
Hashtable<String, Integer> bigDuckCollection = new Hashtable<>(100);

// Membuat Hashtable dari Map lain
Map<String, Integer> existingDucks = new HashMap<>();
Hashtable<String, Integer> copiedDucks = new Hashtable<>(existingDucks);

Dalam contoh pertama, kita membuat rak kosong untuk rakit kami. Dalam yang kedua, kita mengatakan, "Saya akan ada banyak rakit, jadi mari kita buat rak besar!" Dan dalam yang ketiga, kita menyalin rakit dari koleksi lain.

Method Kelas

Hashtables datang dengan rak penyimpanan penuh dengan method yang berguna. Mari kita eksplor beberapa darinya:

Hashtable<String, Integer> duckInventory = new Hashtable<>();

// Menambah rakit
duckInventory.put("Rakit Penyepit Penyelamat", 5);

// Mendapatkan jumlah rakit penyelamat
int pirateDucks = duckInventory.get("Rakit Penyepit Penyelamat");

// Memeriksa jika kita ada rakit penyembah
boolean hasNinjaDucks = duckInventory.containsKey("Rakit Penyepit Penyembah");

// Menghapus semua rakit (oh tidak!)
duckInventory.clear();

// Memeriksa jika inventori kita kosong
boolean isDucklessAndSad = duckInventory.isEmpty();

Setiap method ini membantu kita menguruskan koleksi rakit kami. Kita boleh menambah rakit, memeriksa berapa yang kita ada, melihat jika kita ada jenis tertentu, mengosongkan koleksi kita (tetapi mengapa anda akan melakukan itu?), dan memeriksa jika kita telah kehabisan rakit (tragedi!).

Method yang Diketurunkan

Hashtable adalah sebahagian dari keluarga yang lebih besar di dalam Java, dan ia mengwarisi beberapa method dari kerabatnya. Berikut adalah rakam beberapa method yang penting yang diketurunkan:

Method Diketurunkan Dari Keterangan
clone() Object Membuat salinan dangkal dari Hashtable
equals(Object o) Object Membandingkan Hashtable ini dengan objek lain
hashCode() Object Mengembalikan kod hash untuk Hashtable ini
toString() Object Mengembalikan representasi string bagi Hashtable
putAll(Map<? extends K,? extends V> t) Map Menyalin semua pemetaan dari Map yang dinyatakan ke Hashtable ini

Method ini adalah seperti fitur ekstra yang datang dengan rak rakit anda. Anda boleh membuat salinan koleksi anda, membandingkannya dengan koleksi lain, mendapatkan kod unik untuk itu, mengubahnya menjadi deskripsi, atau bahkan menambah banyak rakit sekaligus!

Contoh Penambahan Pemetaan ke HashTable Pair Integer, Integer

Mari kita tempatkan semua pengetahuan ini ke atas praktek dengan contoh yang lebih kompleks:

public class DuckCounter {
public static void main(String[] args) {
// Membuat Hashtable untuk menyimpan jenis rakit dan jumlah mereka
Hashtable<Integer, Integer> duckCensus = new Hashtable<>();

// Menambah beberapa jumlah rakit
duckCensus.put(1, 10);  // Jenis rakit 1: 10 rakit
duckCensus.put(2, 15);  // Jenis rakit 2: 15 rakit
duckCensus.put(3, 5);   // Jenis rakit 3: 5 rakit

// Cetak konsensus rakit kami
System.out.println("Konsensus Rakit: " + duckCensus);

// Mari kita tambahkan rakit jenis 2 lagi
int currentType2Count = duckCensus.get(2);
duckCensus.put(2, currentType2Count + 5);

// Periksa jumlah kami yang diperbaharui
System.out.println("Konsensus Rakit Diperbaharui: " + duckCensus);

// Oh tidak! Semua rakit jenis 3 telah kelicik
duckCensus.remove(3);

// Jumlah rakit akhir
System.out.println("Konsensus Rakit Akhir: " + duckCensus);
}
}

Dalam contoh ini, kita menggunakan Hashtable untuk meng uruskan jenis rakit yang berbeza. Setiap jenis rakit diberikan nombor (kunci), dan kita simpan jumlah rakit (nilai). Kita menambah rakit, mengupdate nombor mereka, dan bahkan menguruskan rakit jenis 3 yang kelicik!

Apabila anda menjalankan kod ini, anda akan lihat bagaimana populasi rakit kita berubah dari masa ke masa. Ia seperti menjadi pembuat konsensus rakit, tetapi jauh lebih menyenangkan dan kurang menghasilkan untuk dikejar oleh rakit penyelamat yang marah.

Dan itu adalah untuk anda, folks! Anda baru saja mengambil langkah pertama anda ke atas dunia Java Hashtables. Ingat, praktek membuat perfect, jadi jangan takut untuk bereksperimen dengan koleksi data anda sendiri. Selamat pengoding!

Credits: Image by storyset