使用过开源缓存包(如:EHCache)都知道,缓存策略中主要分为FIFO,LRU,LFU等几种。而Jakarta Commons中提供的 org.apache.commons.collections.map.LRUMap 可用来保存最近使用的几条记录,提供了LRU(Least Recently Used)缓存策略的实现。
具体使用方法如下:
import
java.util.Map;
import
org.apache.commons.collections.map.LRUMap;

LRUMap cache
=
new
LRUMap(
5
);

//
Populate the cache with 5 stock prices
cache.put(
"
MSFT
"
,
new
Float(
0.03
) );
cache.put(
"
TSC
"
,
new
Float(
0.001
) );
cache.put(
"
LU
"
,
new
Float(
23.30
) );
cache.put(
"
CSCO
"
,
new
Float(
242.20
) );
cache.put(
"
P
"
,
new
Float(
10.23
) );
//
Now use some of the entries in the cache
Float cscoPrice
=
(Float) cache.get(
"
CSCO
"
);
Float msPrice
=
(Float) cache.get(
"
MSFT
"
);
Float tscPrice
=
(Float) cache.get(
"
TSC
"
);
Float luPrice
=
(Float) cache.get(
"
LU
"
);
Float pPrice
=
(Float) cache.get(
"
P
"
);
Float msPrice2
=
(Float) cache.get(
"
MSFT
"
);
//
Add another price to the Map, this should kick out the LRU item.
cache.put(
"
AA
"
,
new
Float(
203.20
) );
此时,缓存中的元素为:
[CSCO] [MSFT] [TSC] [LU] [P] [AA]
由于LRU最近没有被访问,所以当AA加入时,由于超过了缓存的最大容量(5),所以被剔除了缓存.
|