Java 简明教程

Java BitSet Class

Introduction

Java BitSet 类创建了一个特殊类型,可保存位值。BitSet 数组可以根据需要增加大小。这使其类似于位向量。这是一个旧类,但是它已经过 Java 2 1.4 版的完全重构。

Java BitSet 类实现了一个根据需要增长的位向量。以下是有关 BitSet 的重要要点——

  1. 如果没有外部同步,BitSet 不适用于多线程使用。

  2. 集合中所有位最初的值都为假。

  3. 如果将 null 参数传递给 BitSet 中任何方法都会导致 NullPointerException。

Class declaration

以下是 java.util.BitSet 类的声明——

public class BitSet
   extends Object
   implements Cloneable, Serializable

Class constructors

Class methods

Methods inherited

此类从以下类中继承方法:

  1. java.util.Object

Creating a BitSet and Performing Operations on BitSets Example

以下程序展示了位集数据结构支持的几种方法 −

import java.util.BitSet;
public class BitSetDemo {

  public static void main(String args[]) {
      BitSet bits1 = new BitSet(16);
      BitSet bits2 = new BitSet(16);

      // set some bits
      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 bits
      bits2.and(bits1);
      System.out.println("\nbits2 AND bits1: ");
      System.out.println(bits2);

      // OR bits
      bits2.or(bits1);
      System.out.println("\nbits2 OR bits1: ");
      System.out.println(bits2);

      // XOR bits
      bits2.xor(bits1);
      System.out.println("\nbits2 XOR bits1: ");
      System.out.println(bits2);
   }
}

这会产生以下结果 −

Output

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}

bits2 AND bits1:
{2, 4, 6, 8, 12, 14}

bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}

bits2 XOR bits1:
{}