Javaと情熱のあいだ

カステラとドーナツと珈琲

さらに簡易なメモリーキャッシュ

以前の書いた簡易メモリーキャッシュよりさらに簡易なキャッシュのサンプル。
・キャッシュするオブジェクトの最大個数を指定できる
・キャッシュが最大個数を超えた場合一番最後オブジェクトを削除する。
・キャッシュからオブジェクトを使用した場合、そのオブジェクトはキャッシュの先頭に再配置される。


材料はこちら
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