Java.util.BitSet类在Java中的应用实例
BitSet 是一个定义在java.util包中的类。它创建了一个由布尔值表示的比特数组。
构造函数
BitSet class Constructors
/ \
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
explained 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的默认值是布尔值false,表示为0(关闭)。
- 调用clear方法会使位值设置为false。
- BitSet每一个布尔值使用大约1比特。
- 要访问BitSet中的一个特定值,可以使用get方法,用一个整数参数作为索引。
如果bitset中的数组索引被设置为负数会怎样 ?
程序将抛出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
explained 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)