1、LRU缓存
package cn.hq;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Queue;
public class LRUCache {
private final int SIZE;
private HashMap<Integer,Integer> map;
private LinkedList<Integer> list;
public LRUCache(int size){
this.SIZE=size;
map=new HashMap<>();
list=new LinkedList<>();
}
public boolean put(int key,int value){
if(map.size()>=SIZE) {
int temp=list.removeFirst();
map.remove(temp);
}
map.put(key,value);
list.addLast(key);
return true;
}
public int get(int key){
if(map.get(key)==null)
return -1;
Object obj=map.get(key);
list.remove(obj);
list.add(key);
return map.get(key);
}
public static void main(String[] args) {
LRUCache cache=new LRUCache(2);
cache.put(1,1);
cache.put(2,2);
System.out.println(cache.get(1));
cache.put(3,3);
System.out.println(cache.get(2));
cache.put(4,4);
System.out.println(cache.get(1));
System.out.println(cache.get(3));
System.out.println(cache.get(4));
}
}