Java 中的 BitSet 类方法

java 8object oriented programmingprogramming

BitSet 类创建一种特殊类型的数组,用于保存位值。BitSet 数组的大小可以根据需要增加。

以下是 BitSet 类的方法 −

Sr.No方法与说明
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)
返回由从 startIndex 到 endIndex 的位组成的 BitSet。调用对象未发生改变。
13int hashCode( )
返回调用对象的哈希码。
14boolean intersects(BitSet bitSet)
如果调用对象和 bitSet 中至少有一对对应位为 1,则返回 true。
15boolean isEmpty( )
如果调用对象中的所有位都为零,则返回 true。
16int length( )
返回保存调用 BitSet 内容所需的位数。此值由最后 1 位的位置决定。
17int nextClearBit(int startIndex)
从 startIndex 指定的索引开始,返回下一个清除位(即下一个零位)的索引。
18int nextSetBit(int startIndex)
从 startIndex 指定的索引开始,返回下一个设置位(即下一个 1 位)的索引。如果未设置任何位,则返回 -1。
19void or(BitSet bitSet)
将调用 BitSet 对象的内容与 bitSet 指定的内容进行或运算。结果被放入调用对象中。
20void set(int index)
设置由 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 指定的内容进行异或。结果放入调用对象中。

现在让我们看一个例子,其中我们正在处理 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("位 1 中的初始模式:");
      System.out.println(bits1);
      System.out.println("
位 2 中的初始模式:");       System.out.println(bits2);       // AND 位       bits2.and(bits1);       System.out.println("
位 2 AND 位 1:");       System.out.println(bits2);       // OR 位       bits2.or(bits1);       System.out.println("
bits2 OR bits1: ");       System.out.println(bits2);       // XOR 位       bits2.xor(bits1);       System.out.println("
bits2 XOR bits1: ");       System.out.println(bits2);    } }

输出

位 1 中的初始模式:
{0, 2, 4, 6, 8, 10, 12, 14}
位 2 中的初始模式:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}
位 2 AND 位 1:
{2, 4, 6, 8, 12, 14}
位 2 OR 位 1:
{0, 2, 4, 6, 8, 10, 12, 14}
位 2 XOR 位 1:
{}

相关文章