groovy789's blog

技術系備忘録φ(..)メモメモ

Javaでデータキャッシュ

Javaで固定サイズのキャッシュを作るサンプル。

public class Main {
    /**
     * キャッシュ
     */
    private Map<Integer, String> cache = new LinkedHashMap<Integer, String>(){
        @Override
        protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest) {
            // 30件までキャッシュ
            return size() > 10;
        }
    };
    
    /**
     * テスト
     */
    private void some() {
        // データを30件設定
        for (int i=0; i< 10; i++) {
            cache.put(i, String.valueOf(i));
        }
        System.out.println(cache);    //{0=0, 1=1, 2=2, 3=3, 4=4, 5=5, 6=6, 7=7, 8=8, 9=9}
        cache.put(10, "10");
        System.out.println(cache);    //{1=1, 2=2, 3=3, 4=4, 5=5, 6=6, 7=7, 8=8, 9=9, 10=10}
    }
    
    public static void main(String[] args) {
        new Main().some();
    }
}