Java中的BitSet类方法

BitSet类创建一种特殊的数组,其中包含位值。BitSet数组可以根据需要增加大小。

以下是BitSet类的方法-

序号方法与说明
1void and(BitSet bitSet)
将调用BitSet对象的内容与bitSet指定的内容进行“与”运算。结果放入调用对象中。
2void andNot(BitSet bitSet)
对于bitSet中的每个1位,将清除调用BitSet中的相应位。
3int cardinality()
返回调用对象中设置的位数。
4void clear()将
所有位清零
5void clear(int index)
将index指定的位清零。
6void clear(int startIndex,int endIndex)
将从startIndex到endIndex的位清零
7Object clone()
复制调用BitSet对象。
8boolean equals(Object bitSet)
如果调用位集等于在bitSet中传递的位,则返回true。否则,该方法返回false。
9void flip(int index)
反转索引指定的位。
10void flip(int startIndex,int endIndex)
将位从startIndex反转为endIndex。
11boolean get(int index)
返回指定索引处的位的当前状态。
12BitSet get(int startIndex,int endIndex)
返回一个BitSet,其中包含从startIndex到endIndex的位。调用对象未更改。
13int hashCode()
返回调用对象的哈希码。
14boolean intersects(BitSet bitSet)
如果调用对象和bitSet中的至少一对对应位为1,则返回true。
15boolean isEmpty()
如果调用对象中的所有位均为零,则返回true。
16int length()
返回保存调用BitSet内容所需的位数。该值由最后1位的位置确定。
17int nextClearBit(int startIndex)
从startIndex指定的索引开始,返回下一个清除位(即下一个零位)的索引。
18岁int nextSetBit(int startIndex)
从startIndex指定的索引开始,返回下一个设置位(即下一个1位)的索引。如果未设置任何位,则返回-1。
19void or(BitSet bitSet)
将调用的BitSet对象的内容与bitSet指定的内容进行或运算。结果放入调用对象中。
20void set(int index)
设置索引指定的位。
21void set(int index,boolean v)
将index指定的位设置为v中传递的值。true设置该位,false清除该位。
22void set(int startIndex,int endIndex)
设置从startIndex到endIndex的位。
23void set(int startIndex,int endIndex,boolean v)
将位从startIndex设置为endIndex,设置为v中传递的值。true设置位,false清除位。
24int size()
返回调用BitSet对象中的位数。
25String toString()
返回与调用BitSet对象等效的字符串。
26void xor(BitSet bitSet)
将调用的BitSet对象的内容与bitSet指定的内容进行异或。结果放入调用对象中。

现在让我们来看看其中,我们正在对位集的例子AND()OR(),和XOR()方法-

示例

import java.util.BitSet;
public class BitSetDemo {
   public static void main(String args[]) {
      BitSet bits1 = new BitSet(16);
      BitSet bits2 = new BitSet(16);
      //设置一些位
      for(int i = 0; i < 16; i++) {
         if((i % 2) == 0) bits1.set(i);
         if((i % 5) != 0) bits2.set(i);
      }
      System.out.println("Initial pattern in bits1: ");
      System.out.println(bits1);
      System.out.println("\nInitial pattern in bits2: ");
      System.out.println(bits2);
      //AND位
      bits2.and(bits1);
      System.out.println("\nbits2AND位1: ");
      System.out.println(bits2);
      //或位
      bits2.or(bits1);
      System.out.println("\nbits2或位1: ");
      System.out.println(bits2);
      //XOR位
      bits2.xor(bits1);
      System.out.println("\nbits2XOR位1: ");
      System.out.println(bits2);
   }
}

输出结果

Initial pattern in bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
Initial pattern in bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}
bits2AND位1:
{2, 4, 6, 8, 12, 14}
bits2或位1:
{0, 2, 4, 6, 8, 10, 12, 14}
bits2XOR位1:
{}