背景情報
このリンクに示されているように、LinkedHashMap を使用して LRU キャッシュを作成できます。基本的に、あなたはただ:
- リンクされたハッシュ マップを拡張します。
- 容量パラメーターを指定します。
- スーパー クラス (LinkedHashMap) をパラメーターで初期化し、その容量、スケーリング ファクター (絶対に使用しないでください) を伝え、項目を挿入/参照順序に保ちます。
- 容量に違反したときに最も古いエントリを削除するには、removeEldestEntry をオーバーライドします。
私の質問
これはかなり標準的な LRU キャッシュの実装です。しかし、どうすればよいか分からないことの 1 つは、最近十分に使用されていないために LinkedHashMap がエントリを削除したときに通知を受ける方法です。
removeEldestEntry で何らかの通知を提供できることはわかっていますが、新しい要素が基になるマップに挿入 (配置) されたときにキャッシュから削除された要素を取得する方法はありますか? または、キャッシュから削除された最後のアイテムを照会する方法はありますか?