public V get(K key) {
        if(cacheMap.containsKey(key)) {
                synchronized(this) {
                        if(cacheMap.containsKey(key)) {
                                Item item = cacheMap.get(key);
                                item.lastUseTime = time++;
                                item.useCount = item.useCount + 1;
                                queue.remove(item);
                                queue.add(item);
                                return item.value;
                        }
                        else return null;
                }
        }
        else return null;
    }