. -> 有限制,但是业务中很多数据都可以转换为布尔类型.比如上面的例子中, 业务原意:用户每天的签到记录,以用户为维度. 我们可以转换为: 每天的每个用户是否签到,就变为了布尔类型的数据....构造方法及工厂方法
BitSet提供了两个公开的构造方法以及四个公开的工厂方法,分别支持从long[],LongBuffer,bytes [], ByteBuffer中获取BitSet实例....JDK实现的位图当然是有逻辑操作的,主要支持了与,或,异或,与非四种操作,由于代码不难,这里就不贴代码了,简略的贴一下API.
// 与操作
public void and(BitSet...与非操作
public void andNot(BitSet set);
到这里,BitSet的源码就读完了,但是有没有发现一个问题 ?...我们使用JDK中的BitSet来试一下,在运行过程中打断点看一下内部的数组是什么样子.如下图:
将其序列化输出到文件,文件大小如下图:
可以看到,我们为了保存1和1亿这两个数字,花费了一个一千多万长度的