Java基础知识总结--BloomFilter(布隆过滤器)

前言

  映射是个非常有意思的东西。hash函数是把任意类型的数据映射成等长的字节码,用于快速查询,加密等;

  bitmap 类似桶排序,最大的数是多少,就有多少位,一个数存不存在就看对应的位里是0还是1。

  布隆过滤器是对bitmap的改进,提升了空间利用率。

导图

这里写图片描述

  布隆过滤器主要是用于大数据的查询。

  布隆过滤器是通过k个hash函数散列出k个位矩阵上的点,如果这些点都是1则说明该数据存在,否则只要有一个不是1就不存在。也就是说布隆过滤器算出不存在的数肯定不存在,算出存在的数可能存在也可能不存在。它是牺牲正确率来换取空间。

小结

  总之,这些想把大量数据压缩用更小的空间存储并且快速查询到的算法都是借助了把数据映射到位上。下一篇将提及到bitset(位集)也涉及到了映射的思想。都是自己的理解,如有建议,欢迎指出。

猜你喜欢

转载自blog.csdn.net/boniesunshine/article/details/80468399