标记位的数据结构

阅读更多

一、位图,想必都了解过,简单使用,可了解redis的setbit结构。

二、自己实现位图,可通过将一个int拆成32位,一个int拆成64位来作为标记64个标记位。

三、了解一下RoaringBitmap,会自动转化。

1)插入一个元素时,用ArrayContainer。

2)插入值后容量超过4096,则自动转换为BitmapContainer。因此正常使用的情况下不会出现容量超过4096的ArrayContainer

3)当BitmapContainer删除元素,容量变小于4096时,会自动转换为ArrayContainer。因此正常使用的情况下不会出现容量小于4096的BitmapContainer。

4)只有在调用runOptimize()方法才会发生转换,会分别和ArrayContainer、BitmapContainer比较空间占用大小,然后选择是否转换。

你可能感兴趣的:(标记位的数据结构)