布隆过滤器和hashmap
来源:互联网 发布:handbrake是什么软件 编辑:程序博客网 时间:2024/05/20 22:27
我在这里只是为了怕遗忘做一些简单的记录
布隆表,又被称为布隆过滤器。
应用场景,当数据量过于大时,如果要去判断一条数据在那些数据中是否存在时,是很慢的。这时候,如果要使用最常见的equal方法。相率是很低下的。
这时候才会用上布隆表
布隆表是基于hash的。因为其基于hash,所以就一定不是完全准确的。
布隆表是这么进行运作的,先申请内存,然后将记录的数组中的值都归0。将数据的一个key值(可以是字段,id等等)经过hash计算,放在该数组的某个位置,就讲该位置的数值改为1。
当一个布隆表建立之后,就可以判断该值是否存在,再去服务器中去取数据。
如果在布隆表中不存在,那么一定不存在。如果在布隆表中存在, 也不一定就存在。但是这个几率很低。
布隆表的主要应用有:黑白名单,以及一些判断是否存在的应用中
顺便提一下hashMap中的两个值,因为在计算hash的时候,经常会用到这两个鬼东西。
容量(Capacity)和负载因子Load factor
capactiy就是一个hashMap的大小了。而load factor是其承担负载的比例。
如果map中的元素比例超过load factor,那么capacity自动扩张为原来容量的2倍
hashmap工作原理
- hashmap其实是一个由链表构成的数组,每存入一个值,在计算其hashcode后存入这个数组。
- 因为不同key的hash值是有很小的概率会相同的,这叫做冲突。这时候,就会在该位置向下链下去。
- 如果key的hash相同,并且在equal后发现也相同,那么就直接覆盖
- hashMap在取值的时候,会先根据hash值查找,存在的话,再通过equal方法比较其key值
- 布隆过滤器和hashmap
- 哈希表和布隆过滤器
- 位图和布隆过滤器
- BitSet和布隆过滤器(Bloom Filter)
- 布隆过滤器原理和例子
- 关于布隆过滤器
- 布隆过滤器
- 重写布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 布隆过滤器
- 异常(二)
- 支付宝问题:
- 开源项目Lottie的基本介绍(一)
- 三大WEB服务器对比分析Apache、Lighttpd、Nginx
- PowerDesigner将物理数据模型图生成图片
- 布隆过滤器和hashmap
- File类
- centos7下安装Torch7
- 高性能HTTP服务器 Apache
- 2017年Android开发必须要掌握的热门开源框架总结(附带GitHub地址)
- 播放无声音乐让后台一直运行
- Kubernetes-Updates and Gradual Rollouts
- Android 必知必会 - 根据包名判断 App 运行状态
- POJ 1010 STAMPS 已被翻译