Kelas BitSet Java: Panduan Ramah untuk Pemula

Helo di sini, pemrogram Java yang aspirasi! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia kelas BitSet Java. Jangan khawatir jika anda baru dalam pemrograman; saya akan menjadi pemandu ramah anda, menjelaskan setiap langkah secara perlahan-lahan. Jadi, mari kita melompat masuk!

Java - BitSet Class

Pengenalan

Bayangkan anda memiliki rak besar rakit, dan anda ingin untuk melacak rakit yang anda miliki dan rakit yang anda tidak miliki. Kelas BitSet di Java seperti rak itu, tetapi bukannya rakit, ia menyimpan bit (0 dan 1). Ini adalah alat khusus yang membolehkan kita untuk bekerja dengan kumpulan bit secara efisien.

Dalam dunia komputer, kita sering perlu untuk bekerja dengan set nilai boolean (benar atau salah). Kelas BitSet memberikan kita cara yang rapi untuk melakukan ini tanpa menggunakan terlalu banyak memori. Ia seperti memiliki baris panjang saklar yang boleh dihidupkan atau dimatikan.

Deklarasi Kelas

Di Java, kelas BitSet adalah sebahagian dari paket java.util. Untuk menggunakannya dalam program anda, anda perlu untuk mengimport seperti ini:

import java.util.BitSet;

Pandang baris ini sebagai pengatahuan kepada Java, "Hai, saya mahu untuk menggunakan alat BitSet yang keren ini dalam program saya!"

Konstruktor Kelas

Apabila kita ingin membuat BitSet baru, kita ada beberapa pilihan. Ia seperti memilih berapa besar anda mahu rak rakit anda untuk menjadi. Berikut adalah konstruktor:

Konstruktor Keterangan
BitSet() Membuat BitSet dengan ukuran awal 64 bit
BitSet(int nbits) Membuat BitSet dengan ukuran awal khusus

Lihatlah ini dalam tindakan:

BitSet bitSet1 = new BitSet(); // Ukuran default (64 bit)
BitSet bitSet2 = new BitSet(128); // Ukuran awal 128 bit

Pada baris pertama, kita membuat BitSet dengan ukuran default. Pada baris kedua, kita mengatakan, "Saya mahu BitSet yang boleh memegang sekurang-kurangnya 128 bit, tolong!"

Method Kelas

Sekarang, mari kita lihat beberapa dari yang kita boleh lakukan dengan BitSet kita. Ini adalah seperti cara yang berbeza anda boleh untuk bermain dengan rak rakit anda:

Method Keterangan
void set(int bitIndex) Menetapkan bit pada indeks yang dinyatakan menjadi benar
void clear(int bitIndex) Menetapkan bit pada indeks yang dinyatakan menjadi salah
boolean get(int bitIndex) Mengembalikan nilai bit pada indeks yang dinyatakan
void and(BitSet set) Melakukan operasi logikal AND dengan BitSet ini dan BitSet yang dinyatakan
void or(BitSet set) Melakukan operasi logikal OR dengan BitSet ini dan BitSet yang dinyatakan
void xor(BitSet set) Melakukan operasi logikal XOR dengan BitSet ini dan BitSet yang dinyatakan
int cardinality() Mengembalikan jumlah bit yang ditetapkan menjadi benar dalam BitSet ini
boolean isEmpty() Mengembalikan benar jika BitSet ini mengandungi tidak ada bit yang ditetapkan menjadi benar
int length() Mengembalikan "ukuran logikal" BitSet ini

Lihat beberapa dari ini dalam tindakan:

BitSet myBitSet = new BitSet(8);

// Menetapkan beberapa bit
myBitSet.set(0); // Menetapkan bit pertama menjadi benar
myBitSet.set(3); // Menetapkan bit keempat menjadi benar

System.out.println("BitSet setelah menetapkan bit: " + myBitSet);

// Memeriksa bit
boolean isSet = myBitSet.get(3);
System.out.println("Adakah bit 3 ditetapkan? " + isSet);

// Membersihkan bit
myBitSet.clear(0);
System.out.println("BitSet setelah membersihkan bit 0: " + myBitSet);

// Memeriksa cardinality (jumlah bit yang ditetapkan)
int setbits = myBitSet.cardinality();
System.out.println("Jumlah bit yang ditetapkan: " + setbits);

Dalam contoh ini, kita bermain dengan BitSet kita seperti ia adalah baris saklar. Kita menghidupkan beberapa (set), memeriksa jika mereka hidup (get), mematikan beberapa (clear), dan menghitung berapa banyak yang hidup (cardinality).

Method Waris

Kelas BitSet juga warisi method dari kelas induknya. Ia seperti mendapat beberapa alat ekstra dengan rak rakit anda. Ini termasuk method dari java.lang.Object, seperti clone(), equals(), dan hashCode(). Anda boleh menggunakan ini seperti anda akan dengan objek Java lain.

Contoh Membuat BitSet dan Melakukan Operasi pada BitSets

Sekarang, mari kita gabungkan semua dengan contoh yang menyenangkan. Kita akan membuat dua BitSet dan melakukan beberapa operasi pada mereka:

import java.util.BitSet;

public class BitSetFun {
public static void main(String[] args) {
// Membuat dua BitSet
BitSet bitSet1 = new BitSet(8);
BitSet bitSet2 = new BitSet(8);

// Menetapkan beberapa bit di bitSet1
bitSet1.set(0);
bitSet1.set(2);
bitSet1.set(4);
bitSet1.set(6);

// Menetapkan beberapa bit di bitSet2
bitSet2.set(1);
bitSet2.set(2);
bitSet2.set(3);
bitSet2.set(5);

System.out.println("BitSet1: " + bitSet1);
System.out.println("BitSet2: " + bitSet2);

// Melakukan operasi AND
BitSet andResult = (BitSet) bitSet1.clone();
andResult.and(bitSet2);
System.out.println("Hasil AND: " + andResult);

// Melakukan operasi OR
BitSet orResult = (BitSet) bitSet1.clone();
orResult.or(bitSet2);
System.out.println("Hasil OR: " + orResult);

// Melakukan operasi XOR
BitSet xorResult = (BitSet) bitSet1.clone();
xorResult.xor(bitSet2);
System.out.println("Hasil XOR: " + xorResult);
}
}

Output

Apabila anda menjalankan program ini, anda akan lihat seperti ini:

BitSet1: {0, 2, 4, 6}
BitSet2: {1, 2, 3, 5}
Hasil AND: {2}
Hasil OR: {0, 1, 2, 3, 4, 5, 6}
Hasil XOR: {0, 1, 3, 4, 5, 6}

Mari kita kongsi ini:

  1. Kita membuat dua BitSet dan menetapkan beberapa bit di setiap satu.
  2. Operasi AND hanya menyimpan bit yang ditetapkan dalam kedua BitSet (dalam kasus ini, hanya bit 2).
  3. Operasi OR menyimpan semua bit yang ditetapkan dalam salah satu BitSet.
  4. Operasi XOR menyimpan bit yang ditetapkan dalam salah satu BitSet tetapi bukannya kedua-duanya.

Bayangkan anda dan rakan anda masing-masing memiliki set rakit berwarna. Operasi AND adalah seperti hanya menyimpan warna yang keduanya miliki. Operasi OR adalah seperti menggabungkan semua rakit anda. Operasi XOR adalah seperti menyimpan hanya warna yang salah satu anda miliki, tetapi bukannya keduanya.

Dan itu lah! Anda baru saja mengambil langkah pertama Anda ke dunia BitSet di Java. Ingat, praktek membuat perfect, jadi jangan takut untuk bereksperimen dengan konsep ini. Siapa tahu? Anda mungkin menggunakan BitSet untuk mengatasi beberapa masalah yang benar-benar keren di masa depan!

Happy coding, dan may your bits always be in the right set! ?

Credits: Image by storyset