public LinkedHashMap<String, String> keyMap;
private Integer si = 5;
public String eldestKey;
@Before
public void init() {
keyMap = new LinkedHashMap<String, String>(si, .75F, true) {
private static final long serialVersionUID = 4485729692063620114L;
@Override
protected boolean removeEldestEntry(Map.Entry<String, String> eldest) {
boolean tooBig = size() > si;
if (tooBig) {
eldestKey = eldest.getKey();
}
return tooBig;
}
};
}
@Test
public void test01() {
System.out.println(keyMap.put("1", "2"));
System.out.println(keyMap.put("2", "2"));
System.out.println(keyMap.put("3", "2"));
System.out.println(keyMap.put("4", "2"));
System.out.println(keyMap.put("5", "2"));
System.out.println(keyMap.put("6", "2"));
System.out.println(keyMap.put("7", "2"));
System.out.println(keyMap.put("8", "2"));
}
LinkedHashMap实现LRU算法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 数据结构与算法 1 缓存 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的...
- 链表经典应用场景:LRU缓存算法。缓存淘汰策略常见的有三种: 先进先出策略(FIFO) 最少使用策略(LFU) 最...
- LRU算法 LRU(Least Recently Used),即最近最少使用算法。常用于实现一个简单的缓存功能,就...
- 缓存算法(淘汰算法),常见算法有LRU、LFU和FIFO等算法,每种算法各有各的优势和缺点及适应环境。 PAGE ...
- 和hashmap相比,linkedhashmap是有序的,顺序方式两种,插入顺序和访问顺序,而后面要说的lru就是...