package com.interview.linklist;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* Date 02/11/2016
* @author Tushar Roy
*
* Reference
* https://leetcode.com/problems/lru-cache/
*/
public class LRUCacheLeetCode {
private LinkedHashMap<Integer,Integer> map;
private int capacity;
public LRUCacheLeetCode(int capacity) {
this.capacity = capacity;
this.map = new MyMap(capacity);
}
public int get(int key) {
Integer val = map.get(key);
return val == null ? -1 : val;
}
public void set(int key, int value) {
map.put(key, value);
}
class MyMap extends LinkedHashMap<Integer, Integer> {
int capacity;
MyMap(int capacity) {
super(capacity, 0.75f, true);
this.capacity = capacity;
}
@Override
protected boolean removeEldestEntry(Map.Entry<Integer, Integer> entry) {
return size() > capacity;
}
}
}