Java HashSet Class: A Beginner's Guide
Pengenalan
Helo, pemaju Java masa depan! Hari ini, kita akan menyelam ke atas dunia yang menarik HashSet di Java. Jangan khawatir jika kamu baru dalam pemrograman; saya akan membimbing kamu melalui perjalanan ini langkah demi langkah, sama seperti yang saya lakukan untuk pelbagai pelajar selama tahun tahun mengajar saya. Pikirkan HashSet sebagai rak penyimpanan yang penyihir yang dapat menyimpan item yang unik - tiada pendua dibenarkan! Ia seperti memiliki rak penyimpanan khusus di mana kamu hanya boleh meletakkan satu rakam bagi setiap jenis rakaman. Mari kita mula!
Pengisytiharan Kelas
Di Java, HashSet adalah sebahagian daripada Java Collections Framework. Untuk menggunakannya, kita perlu untuk mengimport dulu:
import java.util.HashSet;
Pengisytiharan asas HashSet adalah seperti berikut:
HashSet<E> hs = new HashSet<E>();
Di sini, 'E' adalah rakam pengganti untuk jenis elemen yang kamu ingin simpan di atas HashSet kamu. Sebagai contoh, jika kamu ingin menyimpan rakaman:
HashSet<String> fruitBasket = new HashSet<String>();
Parameter
Apabila membuat HashSet, kamu boleh menetapkan dua parameter pilihan:
- Kapasiti awal: Bilangan " rak " yang HashSet akan gunakan untuk menyimpan elemen.
- Faktor muat: ukuran penyataan bagaimana penuh HashSet boleh menjadi sebelum ia secara automatik meningkatkan saiz.
Jangan bimbang terlalu banyak tentang ini untuk masa ini. Pikirkan mereka sebagai tetapan tingkat lanjut untuk rak penyimpanan penyihir kamu!
Konstruktor Kelas
HashSet menyediakan empat konstruktor. Mari kita lihat setiap satu daripada mereka:
// Konstruktor 1: Membuat HashSet kosong dengan kapasiti awal default (16) dan faktor muat (0.75)
HashSet<String> set1 = new HashSet<>();
// Konstruktor 2: Membuat HashSet yang mengandungi elemen dari koleksi yang dinyatakan
Collection<String> collection = Arrays.asList("Apple", "Banana", "Cherry");
HashSet<String> set2 = new HashSet<>(collection);
// Konstruktor 3: Membuat HashSet kosong dengan kapasiti awal yang dinyatakan dan faktor muat default (0.75)
HashSet<String> set3 = new HashSet<>(20);
// Konstruktor 4: Membuat HashSet kosong dengan kapasiti awal dan faktor muat yang dinyatakan
HashSet<String> set4 = new HashSet<>(20, 0.8f);
Method Kelas
Berikut adalah jadual bagi method yang paling umum digunakan oleh HashSet:
Method | Keterangan |
---|---|
add(E e) | Menambahkan elemen yang dinyatakan kepada set ini jika ia belum wujud |
clear() | Menghapuskan semua elemen dari set ini |
contains(Object o) | Kembali true jika set ini mengandungi elemen yang dinyatakan |
isEmpty() | Kembali true jika set ini tidak mengandungi elemen |
remove(Object o) | Menghapuskan elemen yang dinyatakan dari set ini jika ia wujud |
size() | Kembali jumlah elemen di atas set ini |
Method Waris
HashSet warisi method dari kelas induknya. Beberapa yang kena mention adalah:
- Dari Set: addAll(), containsAll(), equals(), hashCode(), removeAll(), retainAll()
- Dari Collection: iterator(), toArray()
- Dari Object: clone(), finalize(), getClass(), notify(), notifyAll(), wait()
Contoh Penambahan Elemen kepada HashSet
Mari kita tempatkan pengetahuan kita ke atas praktek dengan contoh yang menyenangkan. Bayangkan kita membuat program untuk menyimpan rakaman es krim unik di atas kedai kita:
import java.util.HashSet;
public class IceCreamShop {
public static void main(String[] args) {
// Membuat HashSet baru untuk menyimpan rakaman es krim
HashSet<String> flavors = new HashSet<>();
// Menambahkan beberapa rakaman
flavors.add("Vanilla");
flavors.add("Chocolate");
flavors.add("Strawberry");
flavors.add("Mint Chip");
// Cuba menambahkan pendua
boolean added = flavors.add("Vanilla");
System.out.println("Vanilla ditambah lagi? " + added);
System.out.println("Rakaman es krim kita: " + flavors);
System.out.println("Kami ada " + flavors.size() + " rakaman unik!");
// Periksa jika kami ada rakaman tertentu
String searchFlavor = "Rocky Road";
if (flavors.contains(searchFlavor)) {
System.out.println("Ya, kami ada " + searchFlavor + "!");
} else {
System.out.println("Maaf, kami tidak ada " + searchFlavor + ".");
}
// Menghapuskan rakaman
flavors.remove("Strawberry");
System.out.println("Rakaman dikemas kini selepas menghapuskan Strawberry: " + flavors);
}
}
Output
Apabila kamu menjalankan program ini, kamu akan lihat seperti berikut:
Vanilla ditambah lagi? false
Rakaman es krim kita: [Vanilla, Mint Chip, Chocolate, Strawberry]
Kami ada 4 rakaman unik!
Maaf, kami tidak ada Rocky Road.
Rakaman dikemas kini selepas menghapuskan Strawberry: [Vanilla, Mint Chip, Chocolate]
Mari kita kongsi apa yang terjadi:
- Kami membuat HashSet yang dipanggil
flavors
untuk menyimpan rakaman es krim kita. - Kami menambah empat rakaman: Vanilla, Chocolate, Strawberry, dan Mint Chip.
- Kami cuba untuk menambah Vanilla lagi, tetapi
add()
kembalifalse
kerana HashSet tidak membenarkan pendua. - Kami mencetakkan semua rakaman kita. Perhatikan susunan mungkin berbeza dari cara kita menambahkannya - HashSet tidak menjaga susunan penyisipan.
- Kami memeriksa jika kami ada rakaman Rocky Road menggunakan
contains()
. Kami tidak, jadi ia mencetakkan mesej "maaf". - Akhirnya, kami menghapuskan Strawberry dan mencetakkan rakaman yang dikemas kini.
Dan itu adalah! Kamu baru saja membuat HashSet pertama kamu dan menggunakan beberapa method pentingnya. Ingat, HashSet adalah sangat baik apabila kamu perlu menyimpan elemen unik dan tidak peduli tentang susunan. Ia seperti rak rakaman di mana setiap rakaman adalah warna yang berbeza - kamu boleh dengan mudah memeriksa jika kamu ada rakaman tertentu, tetapi kamu tidak boleh mengawal susunan mereka keluar apabila kamu kongkaskan rak itu.
Apabila kamu teruskan perjalanan Java kamu, kamu akan menemukan HashSet sangat berguna dalam banyak senario. Teruskan untuk berlatih, dan tidak lama lagi kamu akan menjadi pakar HashSet! Selamat coding!
Credits: Image by storyset