算法专项:布隆过滤器与常见数据结构分析.pptx

算法专项:布隆过滤器与常见数据结构分析.pptx

VIP课

算法专项篇(Set布隆过滤器)

赵云

图灵学院---赵云

思考

1.常见的基础数据存储容器有哪些?基础数据结构:数组+链表+map+set(树)

2.假设给你一个10亿的黑名单email,如何来进行黑名单过滤?垃圾邮件:HashMap或者Hash算法

白名单

3.缓存相信大家都知道,但是缓存并不是百分百命中的,通常我们会根据一个id(字符串uuid)判断缓存里面有没有数据,如果没有再去数据库查询,那你有没有想过突然来了一个超级并发去查询一个缓存不存在的id怎么办?缓存击穿:

分布式锁:

bitMap:

图灵学院---赵云

Set数据结构

Set是一种数据结构,它的特点是里面所存的元素是不能重复的。C++在Java中主要有两种实现方式:

hashMapkey-value

Set:key

HashSet:其内部是一个Hash表(HashMap)实现,不能保证元素的顺序。但是如过是Integer类型的其实在jdk1.8是有序的,大家可以去看看源码,Integher.HashCode返回就知道为啥了.

TreeSet:使用元素的自然顺序进行排序,当然你也可以自己指定排序的规则。其底层是通过二叉树实现的,也就是红黑树。

图灵学院---赵云

各种容器对比

我们到目前为止主要的容器存储结构有:

List:

可以重复存储对象

插入的顺序和遍历的顺序是一致的

常用的实现方式:链表+

文档评论(0)

1亿VIP精品文档

相关文档