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); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。