LruCache 知识点总结

目录
优质文章
从 LRU Cache 带你看面试的本质 - 码农田小齐 - 博客园 👍
常见问题
提示
下面是一些常见的问题,可以先尝试的先自我回答一下,点击题目即可查看答案。
谈谈你对LruCache的理解
- 最近使用的元素会移动到顶部
- 最老使用的元素会在最后面
- 当增加元素时,如果长度已满,将移除最后的元素
- LruCache内部主要使用LinkedHashMap实现元素移动(设置accessOrder=true)
- LruCache是线程安全的,关键函数里使用的synchronized进行保护
- LruCache在使用时候必须提供容量的大小
LruCache是线程安全的吗?
答案:是,举个例子
|
|
LruCache检索速度
速度和HashMap的检索速度一直,因为内部主要是LinkedHashMap在驱动
在最好的情况下是
O(1)
,最坏的情况下是O(LogN)
LruCache的Key和Value有什么要注意的吗?
LruCache put时不允许key和value都不能为null
|
|
LruCache如何处理默认值?
由于LruCache是对LinkHashMap的封装,因此,当key对应的value不存在时会返回null
,如果你需要不返回null,可以通过覆盖create()
方法创建默认的返回值。
|
|
LruCache对象被移除能否感知到?
可以。可以重写LruCache的entryRemoved
函数来实现。
|
|