Java LRU的实现
最近在leetcode上做题的时,看到了一道有关LRU Cache的题目,正好我当初面试阿里巴巴的时候问到的。主要采用linkedHashMap来实现。
package edu.test.algorithm;import java.util.LinkedHashMap;public class LRUCache {LinkedHashMap<Integer,Integer> linkedHashMap;int capacity;public LRUCache(int capacity) {linkedHashMap=new LinkedHashMap<Integer, Integer>(capacity);this.capacity=capacity;}public int get(int key) {if(linkedHashMap.containsKey(key)){int value=linkedHashMap.get(key);linkedHashMap.remove(key);linkedHashMap.put(key, value);return value;}return -1;}public void set(int key, int value) {if(linkedHashMap.containsKey(key)){linkedHashMap.remove(key);}else if(linkedHashMap.size()>=capacity){linkedHashMap.remove(linkedHashMap.keySet().iterator().next());}linkedHashMap.put(key, value);}}
转载于:https://www.cnblogs.com/big-sun/p/4048261.html
Java LRU的实现相关推荐
- java lru笔试题,2016年头条校招笔试(LRU算法)
题目 操作系统中可以使用 LRU(Least Recently Used)内存淘汰旧数据的策略,如果内存需要加载新数据但空间不足,则会按照最近访问时间进行排序,并将最老的数据淘汰.假设现在内存空间大小 ...
- java lru lfu_Java集合之LinkedHashMap实现LRU,LFU,FIFO算法
LinkedHashMap=双向链表+HashMap,存储相比HashMap会多了一个前节点,后节点. LinkedHashMap简介 LinkedHashMap主要是通过HashMap+双向链表来实 ...
- java lru算法栈_LRU算法的Java实现
一.LRU算法介绍 LRU算法全称Least Recently Used,也就是检查最近最少使用的数据的算法.这个算法通常使用在内存淘汰策略中,用于将不常用的数据转移出内存,将空间腾给最近更常用的&q ...
- java lru lfu_内存淘汰机制——LRU与LFU
内存淘汰机制之LRU与LFU LRU(Least Recently Used):淘汰 近期最不会访问的数据 LFU(Least Frequently Used):淘汰 最不经常使用(访问次数少) 所谓 ...
- LRU(Least Recent Used) java实现——为什么采用HashMap+双向链表
在知乎上看到一篇文章 : LRU原理和Redis实现--一个今日头条的面试题 他采用HashMap+双向链表实现LRU(淘汰掉最不经常使用的).先来将原文简单引用介绍下,以免原作者删除. 很久前参加过 ...
- 缓存淘汰算法--LRU算法
缓存淘汰算法--LRU算法 参考: https://www.cnblogs.com/dailidong/p/7571178.html https://blog.csdn.net/wangxilong1 ...
- hashmap是单向链表吗_LRU(Least Recent Used) java 实现为这么采用HashMap+双向链表
他采用HashMap+双向链表实现LRU(淘汰掉最不经常使用的).先来将原文简单引用介绍下,以免原作者删除. 很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redi ...
- java各种符号用法_java“与”符号写法与用法
java"与"符号写法与用法 java"与"符号怎么打出来的 java中"与"符号使用键盘上的 Shift + 数字7 即可打出来.(不是小 ...
- android uil,Android-UIL-cache
Cache pkg cache包目录 disk cache 1.DiskCache.java 该接口是本地内存操作的提取,因为涉及到缓存设计的不同算法(在iml中有具体使用) naming 1.Fil ...
最新文章
- Nginx模块参考手册中文版
- 【转蝈蝈俊.net 】SQL Server 2005 配置发送邮件
- A Step By Step Guide to Tomcat Performance Monitoring【转】
- CentOS 8安装JFrog Artifactory社区版解决方案
- 使用WebRTC开发Android Messenger:第3部分
- 几个有用的ASP Function
- MSSQL数据库设计心得
- 谈谈html5存储之IndexdDB
- IdHTTP处理HTTP 302遇到的问题
- 0基础web开发 python_真零基础Python开发web
- 鼠标onfocus或onblur效果
- Gerrit修改前一次提交的方法
- 华为交换机配置链路聚合实验——Eth Trunk
- 允许计算机usb调试,usb调试不弹出授权,电脑一直弹出无法识别USB
- (附源码)计算机毕业设计ssm房屋租赁管理系统设计
- Android setTheme设置透明主题无效
- 金融工程 | 远期与期货的运用
- 【Python】绘制三维立体图
- 人机问答系统的前世今生
- 在windows下python3使用multiprocessing.Pool时出现的问题