版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://gudepeng.github.io/note/2019/12/28/bitmap/
一.Bitmap简介
1:Bitmap算法又名位图算法,其原理是,使用下标代替数值或特定的意义,使用这个位为0或者1代表特性是否存在。
2:Bitmap算法具有效率高,节省空间的特点,适用于对大量数据进行去重,查询等,因为bit在计算机内只占一个bit,而int类型占用32个bit,所以空间节省了32倍。
二.使用场景
假如有一批人群信息,要给这批人群打上标签,例如你要给某些人打上会员的标签,并且要打上30天内购买过商品的人。你可能会在每个人身上打上标签,这样你在获取一个会员集合的时候需要遍历每一个人判断他是否包含会员标签,这样的计算量太大。
你可以换一种思路,我们有10个人,这样我们就会定义一个10位的数组,我们可以把人群按照自增类型设定每个人的id(从0开始),然后每一位对应一个人,用0,1去判断这个人是否有这个标签。会员标签 |0|1|1|1|0|0|0|1|0|0|
这样我们就可以非常直观的查询到,我们id为1,2,3,7的人事会员。接下来我们继续打一个30天内购