前言
通过对于位图的认识,位图对于整形的适用比较好,当我们想要进行字符串的映射时,需要将字符串进行转化成整形,但是字符串的来说,当字符串的长度较长时就会显得苍白无力,表示字符的ASCII值有256种,当字符串的长度为10时,字符串的个数就有256的十次方,这个个数是远大于位图的最大空间的,直接地址法直接就失效了。当字符串进行向位图中映射时,由于字符串的数量远大于位图中能够映射的位置,那么必然就会出现一个位置进行有好几个字符串进行映射的结果。
狼多肉少就会出现冲突问题(hash冲突2.0版本)
内容摘要
本文内容包括布隆过滤器的概念、布隆过滤器优化的问题及其底层原理、解释布隆过滤器误判的原因以及优化布隆过滤器的实现、布隆过滤器的解决问题的场景、布隆过滤器的实现思路以及代码展现、探究布隆过滤器的误判率的测试逻辑以及代码展现、布隆过滤器和哈希切分进行配合使用处理海量数据问题等等。
布隆过滤器的概念
布隆过滤器就是为了缓解这种情况进行设计出来的,布隆过滤器并不能解决这种hash冲突2.0版本,只是缓解。本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。
布隆过滤器的原理
布隆过滤器解决哈希冲突2.0版本的逻辑就是,既然一个字符串进行一个映射一个位置容易与别的字符串进行冲突,那我将字符串通过不同哈希函数进行不同的映射是不是就可以明显的降低哈希冲突2.0版本的概率呢??答案确实是这样