76 lines
2.0 KiB
Java
76 lines
2.0 KiB
Java
|
/*This Java program is to Implement Bit Array. A bit array (also known as bitmap, bitset, bit string, or bit vector) is an array data structure that compactly stores bits. It can be used to implement a simple set data structure. A bit array is effective at exploiting bit-level parallelism in hardware to perform operations quickly.*/
|
||
|
|
||
|
import java.util.BitSet;
|
||
|
|
||
|
public class BitArray
|
||
|
{
|
||
|
private BitSet bits;
|
||
|
|
||
|
public BitArray(String bits)
|
||
|
{
|
||
|
this.bits = fromString(bits);
|
||
|
}
|
||
|
|
||
|
private BitSet getBitSet()
|
||
|
{
|
||
|
return bits;
|
||
|
}
|
||
|
|
||
|
private void setBitSet(BitSet bitSet )
|
||
|
{
|
||
|
bits = bitSet;
|
||
|
}
|
||
|
|
||
|
public BitArray and(BitArray bitarray)
|
||
|
{
|
||
|
BitSet bits1 = this.getBitSet();
|
||
|
BitSet bits2 = bitarray.getBitSet();
|
||
|
bits1.and(bits2);
|
||
|
this.setBitSet(bits1);
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
public BitArray or(BitArray bitarray)
|
||
|
{
|
||
|
BitSet bits1 = this.getBitSet();
|
||
|
BitSet bits2 = bitarray.getBitSet();
|
||
|
bits1.or(bits2);
|
||
|
this.setBitSet(bits1);
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
private BitSet fromString(String bit)
|
||
|
{
|
||
|
return BitSet.valueOf(new long[] { Long.parseLong(bit, 2) });
|
||
|
}
|
||
|
|
||
|
public String toString()
|
||
|
{
|
||
|
return Long.toString(bits.toLongArray()[0], 2);
|
||
|
}
|
||
|
|
||
|
public static void main (String...arg)
|
||
|
{
|
||
|
BitArray array1 = new BitArray("1010");
|
||
|
BitArray array2 = new BitArray("1001");
|
||
|
BitArray array3 = new BitArray("1100");
|
||
|
System.out.println("The BitArray Are");
|
||
|
System.out.println("First :" + array1);
|
||
|
System.out.println("Second :" +array2);
|
||
|
System.out.println("Third : " + array3);
|
||
|
System.out.println("First AND Second");
|
||
|
System.out.println(array1.and(array2));
|
||
|
System.out.println("Second OR Third");
|
||
|
System.out.println(array2.or(array3));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
The BitArray Are
|
||
|
First :1010
|
||
|
Second :1001
|
||
|
Third : 1100
|
||
|
First AND Second
|
||
|
1000
|
||
|
Second OR Third
|
||
|
1101
|