博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于LinedHashMap 实现LRUCache 缓存
阅读量:6604 次
发布时间:2019-06-24

本文共 1199 字,大约阅读时间需要 3 分钟。

  • 基于LinkedHashMap实现LRUCache
public class LRUCache2
extends LinkedHashMap { private int size; private HashMap
map; public LRUCache2(int size) { this.size = size; this.map = new LinkedHashMap
(size, 0.75f, true) { @Override protected boolean removeEldestEntry(Map.Entry eldest) { return size() > size; } }; } public V getValue(K key) { if (this.map.containsKey(key)) { return this.map.get(key); } else { return null; } } public void set(K key, V value) { this.map.put(key, value); } public void print() { this.map.forEach((k, v) -> System.out.println(k + "\t" + v)); }}
  • 测试案例
public class LRUCacheDemo {  public static void main(String[] args) {    LRUCache2
cache = new LRUCache2(3); cache.set(1, "One"); cache.set(2, "Two"); cache.set(3, "Three"); cache.print(); System.out.println("----------------------"); // 尝试获取,提高1和3的使用率 cache.getValue(1); cache.getValue(3); cache.getValue(3); // 容器已经满了,插入4的时候会覆盖最少使用的为2 cache.set(4, "Four"); cache.print(); }}

转载于:https://www.cnblogs.com/zhoutao825638/p/10660316.html

你可能感兴趣的文章
python的对象的属性(即对象的成员)是动态的
查看>>
南邮CTF--SQL注入题
查看>>
三种数据库访问——Spring3.2 + Hibernate4.2
查看>>
datasg中的数据的存储结
查看>>
iOS 多线程 之 GCD(大中枢派发)(一)
查看>>
hdu 1180 诡异的楼梯
查看>>
单片机GPIO口模拟串口的方法
查看>>
[记]SAF 中缓存服务的实现
查看>>
pstool 的使用方法
查看>>
Email - Boss's concerns
查看>>
余世维 - 有效沟通
查看>>
mysql用户与权限管理笔记
查看>>
a里面不能嵌套a
查看>>
Myeclipse中打开接口实现类的快捷键
查看>>
浅谈React数据流管理
查看>>
orcale 之pl/sql例外
查看>>
<20190516> 一次比较糟糕的售后维修体验(某硕主板)
查看>>
iOS网络篇2-http协议通信规则
查看>>
删除sql dump中的AUTO_INCREMENT
查看>>
jQuery滑动导航菜单
查看>>