LinkedHashMap(按访问顺序的链表)实现Lru
来源:互联网 发布:utorrent linux 64位 编辑:程序博客网 时间:2024/06/06 01:26
LinkedHashMap(按访问顺序的链表)实现Lru
LinkedHashMap 根据链表中元素的顺序可以分为:
按插入顺序的链表,和按访问顺序(调用get方法)的链表
按插入顺序的链表,这个不做介绍。
下边来说明按照“访问顺序的(调用get方法)的链表”的实现原理:
一、创建链表
LinkedHashMap<String, Bitmap> map = new LinkedHashMap<String, Bitmap>(0, 0.75f, true);
二、插入元素(key0,value0)、(key1,value1)后的链表结构
LinkedHashMap是一个双向链表,向链表中插入两个元素key0和key1后,双向链表的结构如下图所示:
map.put(key0, value0);map.put(key1, value1);
三、调用map.get(key0)后的链表结构如下:
map.get(key0);
四、移除最早使用的元素时:
header.next()的数据为 (key1,value1) 。
注:
每次调用 map.get(key)方法 后,都会将该元素放到Header元素的上一个;每次移除时,都会先移除header.next()元素;从而达到了保留最近使用的元素,移除了最早使用的元素。这就是Lru的实现原理。
阅读全文
0 0
- LinkedHashMap(按访问顺序的链表)实现Lru
- 用LinkedHashMap实现的简单LRU Cache
- 使用LinkedHashMap实现的LRU算法
- LinkedHashMap的实现原理(LRU算法)
- 用LinkedHashMap实现的LRU算法
- 分析LinkedHashMap源码的LRU实现
- LinkedHashMap实现最简单的LRU算法
- LinkedHashMap实现简单的LRU缓存
- LRU (redis 的LRU 加自己实现的linkedHashMap)
- LinkedHashMap实现LRU算法
- 浅析linkedHashMap双向链表与Lru算法的关系
- 用LinkedHashMap实现FIFO、LRU
- 利用LinkedHashMap实现LRU算法
- 使用LinkedHashMap实现LRU缓存
- LinkedHashMap实现LRU缓存算法
- 使用 LinkedHashMap 实现 LRU 算法
- 利用LinkedHashMap简单实现基于LRU策略的缓存
- 手写一个自己的LocalCache - 基于LinkedHashMap实现LRU
- C++:指针和引用的区别
- python编程中的if __name__ == 'main': 的作用和原理
- 处理PostgreSQL Transactoin in Read Only Mode一例
- leetcode 5(Longest Palindromic Substring)golang实现
- 【Jquery】关于失焦事件和点击事件发生冲突的解决办法
- LinkedHashMap(按访问顺序的链表)实现Lru
- C/C++:typedef、#define和const
- Quantum Computers
- html5现阶段的使用
- fig913
- 不同类型的可编辑状态
- 解析Glide用法
- sql查询今天,昨天,七天,三十天内的数据
- Oracle字符串拆分