Bit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
Bit-map概述
假设现在有这样一个需求:在20亿个随机整数中找出某个数是否存在其中,并假设32位操作系统,4G内存,你会怎么做?我们知道在java中,一个int占4字节,1字节=8位(1 byte = 8 bit),如果每个数字用int存储,那就是20亿个int,因而占用的空间约为:
2000000000*4/1024/1024/1024≈7.45 G
显然消耗的内存空间太多了。如果按位存储就不一样了,20亿个数就是20亿位,占用空间约为:
2000000000/8/1024/1024/1024≈0.23 G
那么使用Bit-map到底是怎么来存储的以及它的过程是什么样子的呢?接下里带大家一起研究一下。
在最开始的时候我们说过,Bit-map每一位表