import java.util.HashMap;
import java.util.Map;

public class LRUCache {
static DLLNode head;
static DLLNode tail;
Map hmDictionary = new HashMap();

public DLLNode searchCache(DLLNode dllNode){
return hmDictionary.get(dllNode.val);
}

//Check if the cache size has been exhausted, if so remove the element from map
public void addToCache(DLLNode dllNode){
if(hmDictionary.get(dllNode.val) == null){
hmDictionary.put(dllNode.val, dllNode);
}else{
dllNode.prev.next = dllNode.next;
dllNode.next = LRUCache.tail;
LRUCache.tail.prev = dllNode;
}

if(hmDictionary)
}

public void removeFromCache(DLLNode dllNode){
if(hmDictionary.get(dllNode.val) != null){
hmDictionary.remove(dllNode.val);
}
}

}
public class DLLNode {
DLLNode prev;
DLLNode next;

Integer val;
}

Comments are closed.