kr.co.hit.live.cache
Class LRUCache<K,V>

java.lang.Object
  extended by kr.co.hit.live.cache.LRUCache<K,V>

public class LRUCache<K,V>
extends Object

캐쉬기능을 담당하는 LRU 캐쉬이다, LinkedHashMap에 기반들 두고있다.
이캐쉬는 고정된 최대원소수 (cacheSize)를 가지고 있다. 만약 캐쉬가 가득차고 다른 원소가 삽입되면, 최근에 가장 적게 사용된 (least recently used) 엔트리가 삭제된다.

이 클래스의 모든 메소드는 동기화 되어있기 때문에 다중스레드 환경에서 안전하다


Constructor Summary
LRUCache()
          새로운 캐쉬인스턴스를 생성한다.
LRUCache(int capacity)
          새로운 캐쉬인스턴스를 생성한다.
 
Method Summary
 void clear()
          캐쉬를 비운다.
 V get(K key)
          캐쉬내의 엔트리를 검색한다..
 Collection<Map.Entry<K,V>> getAll()
          캐쉬내의 모든 엔트리들의 사본을 포함하고있는 Collection 한다.
 int numberOfEntries()
          캐쉬내의 엔트리수를 리턴한다.
 void put(K key, V value)
          캐쉬에 엔트리를 추가한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LRUCache

public LRUCache()
새로운 캐쉬인스턴스를 생성한다. 디폴크 크기(100)로 생성된다.

Parameters:
void -

LRUCache

public LRUCache(int capacity)
새로운 캐쉬인스턴스를 생성한다.

Parameters:
capacity - 케쉬의 크기를 지정한다.
Method Detail

get

public V get(K key)
캐쉬내의 엔트리를 검색한다..
검색된 엔트리는 MRU (most recently used) 엔트리가 된다..

Parameters:
key - 반환될 엔트리와 연관이 있는 키값.
Returns:
키와연관된 값, 해당키를 가진 값이 없을경우 null 을 리턴함

put

public void put(K key,
                V value)
캐쉬에 엔트리를 추가한다. 만약 캐쉬가 가득차면, 최근에 가장 적게 사용된 (least recently used) 엔트리가 삭제된다.

Parameters:
key - 명시된 값과 연관된 키
value - 명시된 키와 연관된 값.

clear

public void clear()
캐쉬를 비운다.


numberOfEntries

public int numberOfEntries()
캐쉬내의 엔트리수를 리턴한다.

Returns:
캐쉬내의 엔트리수.

getAll

public Collection<Map.Entry<K,V>> getAll()
캐쉬내의 모든 엔트리들의 사본을 포함하고있는 Collection 한다.

Returns:
캐쉬내용을 가지고 있는 Collection 객체.


Copyright © 2014. All Rights Reserved.