Dev@Free

zJun's Tech Weblog

[Jakarta Commons] 使用LRUMap

使用过开源缓存包(如: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),所以被剔除了缓存.

posted on 2006-07-31 14:52 zJun's帛罗阁 阅读(2919) 评论(1)  编辑  收藏 所属分类: 开发环境

评论

# re: [Jakarta Commons] 使用LRUMap 2009-02-27 10:37 Yangtze

你的结果似乎有错误,最后Map中的元素是

{ TSC =0.0010, LU =23.3, P =10.23, MSFT =0.03, AA =203.2}
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

统计

常用链接

留言簿(15)

随笔分类

随笔档案

相册

收藏夹

博客

文档

站点

论坛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜