public void addIntoCache(int data){
        size++;
        if(head == null){
            head = Node.newNode(data);
            tail = head;
            return;
        }
        if(size > MAX_SIZE){
            tail = tail.before;
            Node next = tail.next;
            tail.next = null;
            next.before = null;
            map.remove(next.data);
        }
        Node newNode = Node.newNode(data);
        newNode.next = head;
        if(head != null){
            head.before = newNode;
        }
        head = newNode;
        map.put(data, newNode);
        return;
    }
http://www.geeksforgeeks.org/implement-lru-cache/
Test cases:
MAX_SIZE greater than 1
Delete when empty
Delete when full
Enter data more than max
Delete till cache is empty
src/com/interview/linklist/LRUCache.java