さらに簡易なメモリーキャッシュ
以前の書いた簡易メモリーキャッシュよりさらに簡易なキャッシュのサンプル。
・キャッシュするオブジェクトの最大個数を指定できる
・キャッシュが最大個数を超えた場合一番最後オブジェクトを削除する。
・キャッシュからオブジェクトを使用した場合、そのオブジェクトはキャッシュの先頭に再配置される。
材料はこちら
org.apache.commons.collections
public class LruMapExample { /** * * 実行 * @throws Exception 例外 */ public void execute() throws Exception { final LRUMap map = new LRUMap(10); for(int i = 0; i < 100; i++) { map.put("TEST" + String.valueOf(i), String.valueOf(i)); map.get("TEST10"); } MapUtils.debugPrint(System.out, null, map); } }
実行結果
{ TEST91 = 91 java.lang.String TEST92 = 92 java.lang.String TEST93 = 93 java.lang.String TEST94 = 94 java.lang.String TEST95 = 95 java.lang.String TEST96 = 96 java.lang.String TEST97 = 97 java.lang.String TEST98 = 98 java.lang.String TEST99 = 99 java.lang.String TEST10 = 10 java.lang.String } org.apache.commons.collections.map.LRUMap