public class BitSet extends Object implements Cloneable, Serializable
boolean值。 
       BitSet的位由非负整数索引。 
       可以检查,设置或清除单独的索引位。 
       一个BitSet可以用于通过逻辑AND,逻辑包括OR和逻辑异或运算来修改另一个BitSet的内容。 
        默认情况下,集合中的所有位最初都具有值false 。 
每个位集具有当前大小,这是位设置当前使用的空间位数。 请注意,这个大小与一个位的实现有关,所以它可能会随着实现而改变。 位集合的长度与位集合的逻辑长度相关,并且独立于实现来定义。
 除非另有说明,一个null参数传递给任何方法在BitSet将导致NullPointerException 。 
 BitSet对于无需外部同步的多线程使用是不安全的。 
| Constructor and Description | 
|---|
| BitSet()
              创建一个新的位集。 
             | 
| BitSet(int nbits)
              创建一个位集合,其初始大小足够大以显式表示具有 
              0到nbits-1范围内的索引的位。 | 
| Modifier and Type | Method and Description | 
|---|---|
| void | and(BitSet set)
              执行此参数位置位的此目标位设置的逻辑 
             AND 。 
             | 
| void | andNot(BitSet set)
              清除所有的位,这 
              BitSet其相应的位被设置在指定的BitSet。 | 
| int | cardinality()
              返回此 
              BitSet设置为true的BitSet。 | 
| void | clear()
              将此BitSet中的所有位设置为 
              false。 | 
| void | clear(int bitIndex)
              将索引指定的位设置为 
              false。 | 
| void | clear(int fromIndex, int toIndex)
              将指定的 
              fromIndex(含)的位设置为toIndex(排他)到false。 | 
| Object | clone()
              克隆这个 
              BitSet产生一个新的BitSet等于它。 | 
| boolean | equals(Object obj)
              将此对象与指定对象进行比较。 
             | 
| void | flip(int bitIndex)
              将指定索引处的位设置为其当前值的补码。 
             | 
| void | flip(int fromIndex, int toIndex)
              将指定的每一位 
              fromIndex(含)到指定的toIndex(独家)为其当前值的补码。 | 
| boolean | get(int bitIndex)
              返回具有指定索引的位的值。 
             | 
| BitSet | get(int fromIndex, int toIndex)
              返回一个新 
              BitSet组成位从这个BitSet从fromIndex(含)至toIndex(独家)。 | 
| int | hashCode()
              返回此位集的哈希码值。 
             | 
| boolean | intersects(BitSet set)
              如果指定,则返回true 
              BitSet具有设置为任何位true这也被设置为true这个BitSet。 | 
| boolean | isEmpty()
              如果此 
              BitSet包含设置为true位,则返回true。 | 
| int | length()
              返回这个 
              BitSet的“逻辑大小”:BitSet加上最高位的索引。 | 
| int | nextClearBit(int fromIndex)
              返回在指定的起始索引上或之后设置为 
              false的第一个位的索引。 | 
| int | nextSetBit(int fromIndex)
              返回在指定的起始索引上或之后发生的第一个位的索引设置为 
              true。 | 
| void | or(BitSet set)
              使用位设置参数执行该位的逻辑 
             或 。 
             | 
| int | previousClearBit(int fromIndex)
              返回被设置为最接近的位的索引 
              false上或指定的起始索引之前发生。 | 
| int | previousSetBit(int fromIndex)
              返回被设置为最接近的位的索引 
              true上或指定的起始索引之前发生。 | 
| void | set(int bitIndex)
              将指定索引处的位设置为 
              true。 | 
| void | set(int bitIndex, boolean value)
              将指定索引处的位设置为指定值。 
             | 
| void | set(int fromIndex, int toIndex)
              将指定的 
              fromIndex(含)的位设置为指定的toIndex(排他)到true。 | 
| void | set(int fromIndex, int toIndex, boolean value)
              将指定的 
              fromIndex(含)的位设置为指定值的toIndex(排除)。 | 
| int | size()
              返回此 
              BitSet实际使用的空间位数,以表示位值。 | 
| IntStream | stream()
              返回此 
              BitSet包含设置状态位的索引流。 | 
| byte[] | toByteArray()
              返回一个包含该位集中所有位的新字节数组。 
             | 
| long[] | toLongArray()
              返回一个包含该位集合中所有位的新长数组。 
             | 
| String | toString()
              返回此位集的字符串表示形式。 
             | 
| static BitSet | valueOf(byte[] bytes)
              返回包含给定字节数组中所有位的新位集合。 
             | 
| static BitSet | valueOf(ByteBuffer bb)
              返回一个新的位集,其中包含给定字节缓冲区中位置和极限之间的所有位。 
             | 
| static BitSet | valueOf(long[] longs)
              返回包含给定长数组中所有位的新位集。 
             | 
| static BitSet | valueOf(LongBuffer lb)
              返回包含给定长缓冲区中其位置和极限之间的所有位的新位集合。 
             | 
| void | xor(BitSet set)
              使用位设置参数执行该位的逻辑 
             异或 。 
             | 
public BitSet()
false 。 
          public BitSet(int nbits)
0到nbits-1 。 
           所有位最初false 。 
          nbits - 位的初始大小 
           NegativeArraySizeException - 如果指定的初始大小为负 
           public static BitSet valueOf(long[] longs)
 更确切地说, 
 BitSet.valueOf(longs).get(n) == ((longs[n/64] & (1L<<(n%64))) != 0) 
 全部为n < 64 * longs.length 。 
 此方法相当于BitSet.valueOf(LongBuffer.wrap(longs)) 。 
longs - 一个长数组,其中包含要用作新位集初始位的位序列的小端子表示 
           BitSet包含长阵列中的所有位 
           public static BitSet valueOf(LongBuffer lb)
 更确切地说, 
 BitSet.valueOf(lb).get(n) == ((lb.get(lb.position()+n/64) & (1L<<(n%64))) != 0) 
 为所有n < 64 * lb.remaining() 。 
长缓冲区不被该方法修改,并且不对该缓冲区的引用保留位设置。
lb - 一个长缓冲区,其中包含位置和极限之间的位序列的小端子表示,用作新位组的初始位 
           BitSet包含缓冲区中指定范围内的所有位 
           public static BitSet valueOf(byte[] bytes)
 更确切地说, 
 BitSet.valueOf(bytes).get(n) == ((bytes[n/8] & (1<<(n%8))) != 0) 
 为所有n < 8 * bytes.length 。 
 此方法相当于BitSet.valueOf(ByteBuffer.wrap(bytes)) 。 
bytes - 一个字节数组,其中包含要用作新位集初始位的位序列的小端子表示 
           BitSet包含字节数组中的所有位 
           public static BitSet valueOf(ByteBuffer bb)
 更确切地说, 
 BitSet.valueOf(bb).get(n) == ((bb.get(bb.position()+n/8) & (1<<(n%8))) != 0) 
 全部为n < 8 * bb.remaining() 。 
字节缓冲区不被该方法修改,并且该位不保留对缓冲区的引用。
bb - 一个字节缓冲器,其中包含位置和极限之间的位序列的小端表示,用作新位组的初始位 
           BitSet包含缓冲区中指定范围内的所有位 
           public byte[] toByteArray()
 更准确地说,如果 
 byte[] bytes = s.toByteArray(); 
 然后bytes.length == (s.length()+7)/8和 
 s.get(n) == ((bytes[n/8] & (1<<(n%8))) != 0) 
 为所有n < 8 * bytes.length 。 
public long[] toLongArray()
 更准确地说,如果 
 long[] longs = s.toLongArray(); 
 然后longs.length == (s.length()+63)/64和 
 s.get(n) == ((longs[n/64] & (1L<<(n%64))) != 0) 
 全部为n < 64 * longs.length 。 
public void flip(int bitIndex)
bitIndex - 翻转的位的索引 
           IndexOutOfBoundsException - 如果指定的索引为负数 
           public void flip(int fromIndex,
                 int toIndex) 
          fromIndex (含)到指定的 
           toIndex (独家)为其当前值的补码。 
          fromIndex - 第一位的索引翻转 
           toIndex - 索引后最后一位翻转 
           IndexOutOfBoundsException - 如果 
            fromIndex为负数,或 
            toIndex为负数,或 
            fromIndex大于 
            toIndex 
           public void set(int bitIndex)
true 。 
          bitIndex - 一个位索引 
           IndexOutOfBoundsException - 如果指定的索引为负数 
           public void set(int bitIndex,
                boolean value) 
          bitIndex - 一个位索引 
           value - 要设置的布尔值 
           IndexOutOfBoundsException - 如果指定的索引为负 
           public void set(int fromIndex,
                int toIndex) 
          fromIndex (含)的位设置为指定的 
           toIndex (排他)到 
           true 。 
          fromIndex - 要设置的第一个位的索引 
           toIndex - 最后一位被设置后的索引 
           IndexOutOfBoundsException - 如果 
            fromIndex为负数,或 
            toIndex为负数,或 
            fromIndex大于 
            toIndex 
           public void set(int fromIndex,
                int toIndex,
                boolean value) 
          fromIndex (含)指定的位设置为指定值的 
           toIndex (排除)。 
          fromIndex - 要设置的第一个位的索引 
           toIndex - 最后一位被设置后的索引 
           value - 设置所选位的值 
           IndexOutOfBoundsException - 如果 
            fromIndex为负数,或 
            toIndex为负数,或 
            fromIndex大于 
            toIndex 
           public void clear(int bitIndex)
false 。 
          bitIndex - 要清除的位的索引 
           IndexOutOfBoundsException - 如果指定的索引为负数 
           public void clear(int fromIndex,
                  int toIndex) 
          fromIndex (含)的位设置为指定的 
           toIndex (排他)到 
           false 。 
          fromIndex - 要清除的第一个位的索引 
           toIndex - 最后一位被清除后的索引 
           IndexOutOfBoundsException - 如果 
            fromIndex为负数,或 
            toIndex为负数,或 
            fromIndex大于 
            toIndex 
           public void clear()
false 。 
          public boolean get(int bitIndex)
true如果该位与索引bitIndex当前设置在这BitSet ; 
           否则,结果是false 。 
          bitIndex - 比特索引 
           IndexOutOfBoundsException - 如果指定的索引为负数 
           public BitSet get(int fromIndex, int toIndex)
BitSet组成位从这个 
           BitSet从 
           fromIndex (含)至 
           toIndex (独家)。 
          fromIndex - 要包含的第一位的索引 
           toIndex - 索引后最后一位要包含 
           BitSet从这个 
            BitSet的范围 
           IndexOutOfBoundsException - 如果 
            fromIndex为负数,或 
            toIndex为负数,或 
            fromIndex大于 
            toIndex 
           public int nextSetBit(int fromIndex)
true的第一个位的索引。 
           如果没有这样的位存在,则返回-1 。 
            遍历true位在BitSet ,请使用以下循环: 
   for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) { // operate on index i here }  
          fromIndex - 开始检查的索引(含) 
           -1如果没有这样的位 
           IndexOutOfBoundsException - 如果指定的索引为负数 
           public int nextClearBit(int fromIndex)
false 。 
          fromIndex - 从(含)开始检查的索引 
           IndexOutOfBoundsException - 如果指定的索引为负 
           public int previousSetBit(int fromIndex)
true上或指定的起始索引之前发生。 
           如果不存在这样的位,或者如果给出-1作为起始索引,则返回-1 。 
            遍历true位在BitSet ,请使用以下循环: 
   for (int i = bs.length(); (i = bs.previousSetBit(i-1)) >= 0; ) { // operate on index i here }  
          fromIndex - 开始检查的索引(含) 
           -1如果没有这样的位 
           IndexOutOfBoundsException - 如果指定的索引小于 
            -1 
           public int previousClearBit(int fromIndex)
false上或指定的起始索引之前发生。 
           如果不存在这样的位,或者如果给出-1作为起始索引,则返回-1 。 
          fromIndex - 从(含)开始检查的索引 
           -1如果没有这样的位 
           IndexOutOfBoundsException - 如果指定的索引小于 
            -1 
           public int length()
BitSet的“逻辑大小”: BitSet加上最高位的索引。 
           如果BitSet包含设置位,则返回零。 
          BitSet的逻辑大小 
           public boolean isEmpty()
BitSet包含设置为 
           true位,则返回true。 
          BitSet是否为空 
           public boolean intersects(BitSet set)
BitSet具有设置为任何位 
           true这也被设置为 
           true这个 
           BitSet 。 
          set - 
            BitSet相交 
           BitSet指定的BitSet 
            BitSet 
           public int cardinality()
BitSet设置为 
           true的 
           BitSet 。 
          true中的位数设置为 
            BitSet 
           public void and(BitSet set)
true当且仅当两者它最初所具有的值true和在比特组参数中的相应位也具有的值true 。 
          set - 有点设置 
           public void or(BitSet set)
true当且仅当它要么已经有了值true ,或在位设置参数对应位的值为true 。 
          set - 有点设置 
           public void xor(BitSet set)
true : 
           true ,并且参数中的相应位具有值false 。 false ,并且参数中的相应位具有值true 。 set - 有点设置 
           public void andNot(BitSet set)
BitSet其相应的位被设置在指定的 
           BitSet 。 
          set - 
            BitSet用来掩盖这个 
            BitSet 
           public int hashCode()
BitSet中设置的位。 
           哈希码被定义为以下计算的结果:
   public int hashCode() { long h = 1234; long[] words = toLongArray(); for (int i = words.length; --i >= 0; ) h ^= words[i] * (i + 1); return (int)((h >> 32) ^ h); }  
           请注意,如果该组位被改变,那么哈希代码就会改变。 
          hashCode在 
            Object 
           Object.equals(java.lang.Object) , 
            System.identityHashCode(java.lang.Object) 
           public int size()
BitSet实际使用的空间位数,以表示位值。 
           集合中的最大元素是大小 - 第一个元素。 
          public boolean equals(Object obj)
true当且仅当参数不是null ,并且是一个Bitset对象,具有完全相同的一组位设置为true作为该位设置。 
           也就是说,对于每个非int指数k , 
             ((BitSet)obj).get(k) == this.get(k)  
           一定是真的 
           不比较两个位组的当前大小。 
          public Object clone()
BitSet产生一个新的BitSet等于它。 
           位集合的克隆是另一个位设置,与该位置1完全相同的位设置为true 。 
          public String toString()
BitSet在设置状态中包含一位的每个索引,该索引的十进制表示都包含在结果中。 
           这些索引按照从最低到最高的顺序列出,用“,”(逗号和空格)分隔开并被大括号包围,导致一整套整数的通常的数学符号。 
           例:
  BitSet drPepper = new BitSet();  
           现在drPepper.toString()返回“ {} ”。 
             drPepper.set(2);  
           现在drPepper.toString()返回“ {2} ”。 
             drPepper.set(4);
 drPepper.set(10);  
           现在drPepper.toString()返回“ {2, 4, 10} ”。 
          public IntStream stream()
BitSet包含设置状态位的索引流。 
           索引按顺序返回,从最低到最高。 
           流的大小是设置状态下的位数,等于cardinality()方法返回的值。 
           在执行终端流操作期间,位集必须保持不变。 否则,终端流操作的结果未定义。
 Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.