Java中的BitSet类方法
BitSet类创建一种特殊的数组,其中包含位值。BitSet数组可以根据需要增加大小。
以下是BitSet类的方法-
将调用BitSet对象的内容与bitSet指定的内容进行“与”运算。结果放入调用对象中。
对于bitSet中的每个1位,将清除调用BitSet中的相应位。
返回调用对象中设置的位数。
所有位清零。
将index指定的位清零。
将从startIndex到endIndex的位清零。
复制调用BitSet对象。
如果调用位集等于在bitSet中传递的位,则返回true。否则,该方法返回false。
反转索引指定的位。
将位从startIndex反转为endIndex。
返回指定索引处的位的当前状态。
返回一个BitSet,其中包含从startIndex到endIndex的位。调用对象未更改。
返回调用对象的哈希码。
如果调用对象和bitSet中的至少一对对应位为1,则返回true。
如果调用对象中的所有位均为零,则返回true。
返回保存调用BitSet内容所需的位数。该值由最后1位的位置确定。
从startIndex指定的索引开始,返回下一个清除位(即下一个零位)的索引。
从startIndex指定的索引开始,返回下一个设置位(即下一个1位)的索引。如果未设置任何位,则返回-1。
将调用的BitSet对象的内容与bitSet指定的内容进行或运算。结果放入调用对象中。
设置索引指定的位。
将index指定的位设置为v中传递的值。true设置该位,false清除该位。
设置从startIndex到endIndex的位。
将位从startIndex设置为endIndex,设置为v中传递的值。true设置位,false清除位。
返回调用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:
{}