最近在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的实现相关推荐

  1. java lru笔试题,2016年头条校招笔试(LRU算法)

    题目 操作系统中可以使用 LRU(Least Recently Used)内存淘汰旧数据的策略,如果内存需要加载新数据但空间不足,则会按照最近访问时间进行排序,并将最老的数据淘汰.假设现在内存空间大小 ...

  2. java lru lfu_Java集合之LinkedHashMap实现LRU,LFU,FIFO算法

    LinkedHashMap=双向链表+HashMap,存储相比HashMap会多了一个前节点,后节点. LinkedHashMap简介 LinkedHashMap主要是通过HashMap+双向链表来实 ...

  3. java lru算法栈_LRU算法的Java实现

    一.LRU算法介绍 LRU算法全称Least Recently Used,也就是检查最近最少使用的数据的算法.这个算法通常使用在内存淘汰策略中,用于将不常用的数据转移出内存,将空间腾给最近更常用的&q ...

  4. java lru lfu_内存淘汰机制——LRU与LFU

    内存淘汰机制之LRU与LFU LRU(Least Recently Used):淘汰 近期最不会访问的数据 LFU(Least Frequently Used):淘汰 最不经常使用(访问次数少) 所谓 ...

  5. LRU(Least Recent Used) java实现——为什么采用HashMap+双向链表

    在知乎上看到一篇文章 : LRU原理和Redis实现--一个今日头条的面试题 他采用HashMap+双向链表实现LRU(淘汰掉最不经常使用的).先来将原文简单引用介绍下,以免原作者删除. 很久前参加过 ...

  6. 缓存淘汰算法--LRU算法

    缓存淘汰算法--LRU算法 参考: https://www.cnblogs.com/dailidong/p/7571178.html https://blog.csdn.net/wangxilong1 ...

  7. hashmap是单向链表吗_LRU(Least Recent Used) java 实现为这么采用HashMap+双向链表

    他采用HashMap+双向链表实现LRU(淘汰掉最不经常使用的).先来将原文简单引用介绍下,以免原作者删除. 很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redi ...

  8. java各种符号用法_java“与”符号写法与用法

    java"与"符号写法与用法 java"与"符号怎么打出来的 java中"与"符号使用键盘上的 Shift + 数字7 即可打出来.(不是小 ...

  9. android uil,Android-UIL-cache

    Cache pkg cache包目录 disk cache 1.DiskCache.java 该接口是本地内存操作的提取,因为涉及到缓存设计的不同算法(在iml中有具体使用) naming 1.Fil ...

最新文章

  1. Nginx模块参考手册中文版
  2. 【转蝈蝈俊.net 】SQL Server 2005 配置发送邮件
  3. A Step By Step Guide to Tomcat Performance Monitoring【转】
  4. CentOS 8安装JFrog Artifactory社区版解决方案
  5. 使用WebRTC开发Android Messenger:第3部分
  6. 几个有用的ASP Function
  7. MSSQL数据库设计心得
  8. 谈谈html5存储之IndexdDB
  9. IdHTTP处理HTTP 302遇到的问题
  10. 0基础web开发 python_真零基础Python开发web
  11. 鼠标onfocus或onblur效果
  12. Gerrit修改前一次提交的方法
  13. 华为交换机配置链路聚合实验——Eth Trunk
  14. 允许计算机usb调试,usb调试不弹出授权,电脑一直弹出无法识别USB
  15. (附源码)计算机毕业设计ssm房屋租赁管理系统设计
  16. Android setTheme设置透明主题无效
  17. 金融工程 | 远期与期货的运用
  18. 【Python】绘制三维立体图
  19. 人机问答系统的前世今生
  20. 在windows下python3使用multiprocessing.Pool时出现的问题

热门文章

  1. Linux下的基础命令介绍(二)
  2. 浮点数不能全等比较吗php,php的一些易错知识点整理 | 木凡博客
  3. java删不了_java – 为什么我不能删除项目?
  4. Ogre1.7的地形、天空与雾
  5. 30个超实用Python代码片段
  6. 安装Docker环境并下载TensorFlow镜像
  7. GDAL库调试(包括跨语言调试)
  8. GDAL读写矢量文件——C#
  9. 读《编码-藏匿在计算机软硬件背后的语言》有感
  10. js请求后台接口返回的图片并转为base64