用linkList實(shí)現(xiàn)LRU算法

          public class LRUCache<K,V> {

              final private int capacity;
              final private Map<K,Reference<V>> map;
              final private ReentrantLock lock = new ReentrantLock();
              final private ReferenceQueue<Reference<V>> queue = new ReferenceQueue<Reference<V>>();
             
              public LRUCache(int capacity) {
           this.capacity = capacity;
           map = new LinkedHashMap<K,Reference<V>>(capacity,1f,true){
               @Override
               protected boolean removeEldestEntry(Map.Entry<K,Reference<V>> eldest) {
                   return this.size() > LRUCache.this.capacity;
               }
           };
              }
             
              public V put(K key,V value) {
           lock.lock();
           try {
            map.put(key, new SoftReference(value,queue));
            return value;
           }finally {
               lock.unlock();
           }
              }
             
              public V get(K key) {
           lock.lock();
           try {
               queue.poll();
               return map.get(key).get();
           }finally {
               lock.unlock();
           }
              }
           
              public void remove(K key) {
           lock.lock();
           try {
               map.remove(key);
           }finally {
               lock.unlock();
           }
              }

          }

          posted on 2010-08-15 20:33 胡鵬 閱讀(630) 評(píng)論(0)  編輯  收藏 所屬分類: java基礎(chǔ)J2EE

          導(dǎo)航

          <2010年8月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          統(tǒng)計(jì)

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          agile

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 玉林市| 凤阳县| 临洮县| 阿克陶县| 北流市| 手机| 大姚县| 静安区| 常熟市| 广饶县| 巴东县| 福鼎市| 专栏| 册亨县| 黑龙江省| 舒城县| 新乐市| 广州市| 大名县| 牡丹江市| 博乐市| 郯城县| 石屏县| 紫云| 福建省| 石阡县| 和田市| 军事| 西青区| 克山县| 石楼县| 抚远县| 肇源县| 嵊泗县| 彰武县| 舒兰市| 镇原县| 会泽县| 海南省| 通城县| 内丘县|