BitSet简介

基本原理和用途
BitSet即位图,是一个很长的“0/1”序列,他的功能就是存储0或者1。

他的这个特点使得在java环境中存储一个数要比直接存一个int节省很多内存空间(一个int占4个字节32位,而用BItSet“存放”一个数只需要1个位)。

比如我们有{1,3,5,7}需要存放,内存中占用了4个int的长度即32*4(bit),如果使用BitSet,就是这个样的[...,1,0,1,0,1,0,1],只需要占用几个bit就可以表示。1个G的内存有8 * 1024 * 1024 * 1024 = 8.58 * 10^9个bit,也就是可以存放85亿+个数。

BitSet的初始大小为1个long的大小,即8字节64个bit。如果我们创建的BitSet指定了位数,系统会根据情况取成64的整数倍个bit,即整数个long的位数,这样做是为了内存补齐。

BitSet适合用于无重复,整数,常用于大数据场景或者日志统计。

参考文章:
Java中BitSet的使用及详解

你可能感兴趣的:(BitSet简介)