maven引入RoaringBitmap 基本用法,包括文件流其他工具类搜索算法数据库设计
java自带的bitset只提供了基本的功能,不算很强大。所以实际开发中要借助其他类库,例如RoaringBitmap。
RoaringBitmap在方法的丰富性上,以及性能上都有提高。
maven引入第2个是roaringbitmap,但是一块贴上了啊。
RoaringBitmap 基本用法,包括文件流uk.gov.gchq.gaffer bitmap-library 1.21.1 org.roaringbitmap RoaringBitmap 0.9.22
public static void main(String[] args) throws Exception{
String filePath="d://bit.txt";
RoaringBitmap roaringBitmap = new RoaringBitmap ();
roaringBitmap.add(1);
roaringBitmap.add(20000);
serialize(roaringBitmap,filePath);
RoaringBitmap deserialize = deserialize(filePath);
// RoaringBitmap 最大的特点就是 带有压缩,例如 添加一个很大的数,基数不会跳跃
logger.info("getCardinality:{}",deserialize.getCardinality());
}
// 序列化 保存
public static void serialize(RoaringBitmap roaringBitmap,String filePath) throws IOException {
roaringBitmap.serialize(new DataOutputStream(new FileOutputStream(filePath)));
}
// 反序列化 读取
public static RoaringBitmap deserialize(String filePath) throws IOException {
RoaringBitmap roaringBitmap = new RoaringBitmap ();
roaringBitmap.deserialize(new DataInputStream(new FileInputStream(filePath)));
return roaringBitmap;
}
其他工具类
还有很多,如:
ArrayContainer
RunContainer
数据库设计可以为
t_bitset
category 大类(如性别,设备类型等)
type 类型(如男、女,android、ios等)
fileName 文件名
filePath 文件路径



