BitSet是java.util包中定义的一个类。它创建一个由布尔值表示的数组。
构造函数:
BitSet类构造函数
/ \
BitSet()BitSet(int no_Of_Bits)
BitSet():一个无参数的构造函数,用于创建一个空的BitSet对象。
BitSet(int no_Of_Bits):带有整数参数的单构造函数,用于创建BitSet类的实例,初始大小为表示位数的整数参数。
// Java program illustrating Bitset Class constructors.
import java.util.*;
public class GFG
{
public static void main(String[] args)
{
// Constructors of BitSet class
BitSet bs1 = new BitSet();
BitSet bs2 = new BitSet(6);
/* set is BitSet class method
expalined in next articles */
bs1.set(0);
bs1.set(1);
bs1.set(2);
bs1.set(4);
// assign values to bs2
bs2.set(4);
bs2.set(6);
bs2.set(5);
bs2.set(1);
bs2.set(2);
bs2.set(3);
// Printing the 2 Bitsets
System.out.println("bs1 : " + bs1);
System.out.println("bs2 : " + bs2);
}
}
输出:
bs1:{0,1,2,4}
bs2:{1,2,3,4,5,6}
重点:
阵列的大小是灵活的,可以根据需要增长以容纳额外的位。
由于它是一个数组,索引是基于零的,并且位值只能由非负整数作为索引访问。
BitSet的默认值为boolean false,表示形式为0(off)。
调用清除方法会将位值设置为false。
BitSet每布尔值使用大约1位。
要访问BitSet中的特定值,get方法将与整数参数一起用作索引。
如果bitset中的数组索引被设置为Negative会发生什么?
该程序将抛出java.lang.NegativeArraySizeException
// Java program illustrating Exception when we access
// out of index in BitSet class.
import java.util.*;
public class GFG
{
public static void main(String[] args)
{
// Constructors of BitSet class
BitSet bs1 = new BitSet();
// Negative array size
BitSet bs2 = new BitSet(-1);
/* set is BitSet class method
expalined in next articles */
// assigning values to bitset 1
bs1.set(0);
bs1.set(1);
// assign values to bs2
bs2.set(4);
bs2.set(6);
System.out.println("bs1 : " + bs1);
System.out.println("bs2 : " + bs2);
}
}
输出:
Exception in thread "main" java.lang.NegativeArraySizeException: nbits < 0: -1
at java.util.BitSet.(BitSet.java:159)
at GFG.main(NewClass.java:9)