6/22/2014

147. LRU Cache

import java.util.LinkedHashMap;

public class LRUCache {
   
    LinkedHashMap<Integer, Integer> map;
int capacity;
   
    public LRUCache(int capacity) {
        map = new LinkedHashMap<Integer, Integer> (capacity);
   this.capacity = capacity;
    }
   
    public int get(int key) {
        if(map.containsKey(key)){
            int val = map.get(key);
       map.remove(key);
       map.put(key, val);
       return val;
        }
        return -1;
    }
   
    public void set(int key, int value) {
        if(map.containsKey(key)){
            map.remove(key);
            map.put(key, value);
        }else{
            if(map.size() == capacity){
                int firstKey = map.keySet().iterator().next();
                map.remove(firstKey);
            }
            map.put(key, value);
        }
    }
}

没有评论:

发表评论