LRU(Least Recently Used)アルゴリズムを持つ Map を作成する場合、LinkedHashMap を使うとラクチンです。 LRU アルゴリズムの実装方法 removeEldestEntry(java.util.Map.Entry) メソッドをオーバーライドするだけで、LRU アルゴリズムを持った Map になります。put 時にこのメソッドがよばれ、true を返すと最も長時間アクセスされていない要素が削除されます。ということで、 return size() > maxEntries; のように戻り値を設定するだけで、最大サイズが maxEntries の LRUアルゴリズムを持った Map となります。 get時の振る舞い 内部的には、二重のリンクリストを保持していて、そのリストを常に、最後にアクセスのあったエントリを先頭にするように保守しています。たとえば、既存の