Java数据结构——位集合(BitSet)

转自菜鸟教程。
一个Bitset类创建一种特殊类型的数组来保存位置。Bitset中数组大小会随需要增加。这和位向量(vector of bits)比较类似。这是一个传统的类,但它在Java 2中完全重新设计。
Bitset两个构造方法。

BitSet()	     //创建一个默认的对象

BitSet(int size) //指定初始大小,所有位初始化为0

BitSet常用方法

序号方法解释
1void and(BitSet set)对此目标位 set 和参数位 set 执行逻辑与操作。
2void or(BitSet bitSet)对此位 set 和位 set 参数执行逻辑或操作。
3void clear( )将此 BitSet 中的所有位设置为 false。
4void set(int index)将指定索引处的位设置为 true。
5int size( )返回此 BitSet 表示位值时实际使用空间的位数。
BitSet不常用方法
序号方法解释
1void andNot(BitSet set)清除此 BitSet 中所有的位,其相应的位在指定的 BitSet 中已设置。
2void xor(BitSet bitSet)对此位 set 和位 set 参数执行逻辑异或操作。
3void clear( )将此 BitSet 中的所有位设置为 false。
4void clear(int index)将索引指定处的位设置为 false。
5void clear(int startIndex, int endIndex)将指定的 8startIndex(包括)到指定的 toIndex(不包括)范围内的位设置为 false。
6boolean equals(Object bitSet)将此对象与指定的对象进行比较。
7void set(int index, boolean v)将指定索引处的位设置为指定的值。
8void set(int startIndex, int endIndex)将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的位设置为 true。
9void set(int startIndex, int endIndex, boolean v)将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的位设置为指定的值。
10int size( )返回此 BitSet 表示位值时实际使用空间的位数。
11String toString( )返回此位 set 的字符串表示形式。
实例
set方法
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%6) != 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);
  }

}

运行结果

Initial pattern in bits1: 
{0, 2, 4, 6, 8, 10, 12, 14}		这些数字表示第几位为1

Initial pattern in bits2: 
{1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15}

bits2 AND bits1: 
{2, 4, 8, 10, 14}

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

bits2 XOR bits1: 	//bits2:{0, 2, 4, 6, 8, 10, 12, 14}  or  bits1:{0, 2, 4, 6, 8, 10, 12, 14}
{}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值