LeetCode

Code
It will be great to implement LinkedList by myself, I use JDK LinkedList directly

class LRUCache {

    private LinkedList<Integer> list = new LinkedList<>();
    private Map<Integer, Integer> map = new HashMap<>();
    private final int cap;


    public LRUCache(int capacity) {
        this.cap = capacity;
    }


    public int get(int key) {
        Integer result = map.get(key);
        if (result == null) {
            return -1;
        } else {
            list.remove(Integer.valueOf(key));
            list.addFirst(key);
        }
        return result;
    }


    public void put(int key, int value) {
        Integer result = map.get(key);
        if (result != null) {
            list.remove(Integer.valueOf(key));
        } else {
            if (map.size() == cap) {
                map.remove(list.removeLast());
            }
        }
        list.addFirst(key);
        map.put(key, value);
     }