This is a Java Program to implement Bit Set. Bit Set is an array data structure used to implement a simple set data structure.
Here is the source code of the Java Program to implement Bit Set. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/** ** Java Program to implement Bit Set **/ import java.util.Scanner; /** class bit set */ class BitSet { private byte[] bits; private int bitSetSize; /** constructor **/ public BitSet(int size) { bitSetSize = size; bits = new byte[1 + size/8]; } /** constructor **/ public BitSet(BitSet bs) { bitSetSize = bs.bitSetSize; bits = new byte[bs.bits.length]; System.arraycopy(bs.bits, 0, bits, 0, bs.bits.length); } /** function to clear all bits **/ public void clear() { bits = new byte[bits.length]; } /** function setBit - bit to be set **/ public void setBit(int n) { bits[n / 8] |= (1 << (n % 8)); } /** function getBit **/ public boolean getBit(int n) { return ((bits[n / 8] & (1 << (n % 8))) != 0); } /** function clearBit **/ public void clearBit(int n) { bits[n / 8] &= ((1 << (n % 8)) ^ ((1 << 8) - 1)); } /** function for or **/ public void or(BitSet set) { for (int i = 0; i < bits.length; i++) { if (i < set.bits.length) bits[i] |= set.bits[i]; else break; } } /** function for and **/ public void and(BitSet set) { for (int i = 0; i < bits.length; i++) { if (i < set.bits.length) bits[i] &= set.bits[i]; else bits[i] = 0; } } /** function to display bitset */ public void display() { System.out.print("\nBit Set : "); for (int i = 0; i < bitSetSize; i++) if (getBit(i)) System.out.print(i +" "); System.out.println(); } } /** Class BitSetTest **/ public class BitSetTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Bit Set Test\n"); System.out.println("Enter max size of Bit Set 1"); BitSet bs1 = new BitSet(scan.nextInt() ); char ch; /* Perform bitset operations */ do { System.out.println("\nBit Set Operations\n"); System.out.println("1. set bit"); System.out.println("2. get bit"); System.out.println("3. clear bit"); System.out.println("4. clear"); int choice = scan.nextInt(); switch (choice) { case 1 : System.out.println("Enter integer element to set"); bs1.setBit(scan.nextInt() ); break; case 2 : System.out.println("Enter integer element to get status"); System.out.println("Bit Status : "+ bs1.getBit(scan.nextInt() )); break; case 3 : System.out.println("Enter integer element to clear"); bs1.clearBit(scan.nextInt() ); break; case 4 : System.out.println("Bit Set Cleared"); bs1.clear(); break; default : System.out.println("Wrong Entry \n "); break; } bs1.display(); System.out.println("\nDo you want to continue (Type y or n) \n"); ch = scan.next().charAt(0); } while (ch == 'Y'|| ch == 'y'); System.out.println("\n\nEnter max size of Bit Set 2"); BitSet bs2 = new BitSet(scan.nextInt() ); /* Perform bitset operations */ do { System.out.println("\nBit Set Operations\n"); System.out.println("1. set bit"); System.out.println("2. get bit"); System.out.println("3. clear bit"); System.out.println("4. clear"); int choice = scan.nextInt(); switch (choice) { case 1 : System.out.println("Enter integer element to set"); bs2.setBit(scan.nextInt() ); break; case 2 : System.out.println("Enter integer element to get status"); System.out.println("Bit Status : "+ bs2.getBit(scan.nextInt() )); break; case 3 : System.out.println("Enter integer element to clear"); bs2.clearBit(scan.nextInt() ); break; case 4 : System.out.println("Bit Set Cleared"); bs2.clear(); break; default : System.out.println("Wrong Entry \n "); break; } bs2.display(); System.out.println("\nDo you want to continue (Type y or n) \n"); ch = scan.next().charAt(0); } while (ch == 'Y'|| ch == 'y'); BitSet temp = new BitSet(bs1); temp.or(bs2); System.out.println("\n\nBitSet1 OR BitSet2"); temp.display(); temp = new BitSet(bs1); temp.and(bs2); System.out.println("\nBitSet1 AND BitSet2"); temp.display(); } }
Bit Set Test Enter max size of Bit Set 1 50 Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 24 Bit Set : 24 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 6 Bit Set : 6 24 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 28 Bit Set : 6 24 28 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 5 Bit Set : 5 6 24 28 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 14 Bit Set : 5 6 14 24 28 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 2 Enter integer element to get status 14 Bit Status : true Bit Set : 5 6 14 24 28 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 3 Enter integer element to clear 14 Bit Set : 5 6 24 28 Do you want to continue (Type y or n) n Enter max size of Bit Set 2 50 Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 14 Bit Set : 14 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 7 Bit Set : 7 14 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 1 Bit Set : 1 7 14 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 28 Bit Set : 1 7 14 28 Do you want to continue (Type y or n) y Bit Set Operations 1. set bit 2. get bit 3. clear bit 4. clear 1 Enter integer element to set 5 Bit Set : 1 5 7 14 28 Do you want to continue (Type y or n) n BitSet1 OR BitSet2 Bit Set : 1 5 6 7 14 24 28 BitSet1 AND BitSet2 Bit Set : 5 28
Related posts:
Giới thiệu Google Guice – Binding
Custom Cascading in Spring Data MongoDB
Java Program to Test Using DFS Whether a Directed Graph is Strongly Connected or Not
Java Program to Implement Hash Tables chaining with Singly Linked Lists
How to Store Duplicate Keys in a Map in Java?
A Guide To UDP In Java
New in Spring Security OAuth2 – Verify Claims
Java Program to Implement Hash Tables
CharSequence vs. String in Java
Immutable Objects in Java
File Upload with Spring MVC
So sánh HashMap và Hashtable trong Java
Java – Random Long, Float, Integer and Double
Java Program to Implement Hopcroft Algorithm
Rate Limiting in Spring Cloud Netflix Zuul
Java Program to Represent Linear Equations in Matrix Form
Java Program to Implement Sorted Vector
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Entity To DTO Conversion for a Spring REST API
Life Cycle of a Thread in Java
New Features in Java 9
Serialization và Deserialization trong java
Create a Custom Exception in Java
Intro to the Jackson ObjectMapper
Simple Single Sign-On with Spring Security OAuth2
Java Program to Perform Matrix Multiplication
Hướng dẫn Java Design Pattern – Observer
Java Program to Implement ScapeGoat Tree
Java Program to Implement Self organizing List
Java Program to Implement Binomial Heap
Introduction to Spring Cloud OpenFeign
Custom Thread Pools In Java 8 Parallel Streams