私は、キャッシュ排除ポリシーを実装する単純なデータ構造に取り組んでいます。実装したい2つの可能なシナリオは、LRUとMRUです。
どのキャッシュブロックが最も最近使用されたか、または最も最近使用されなかったかを知るために、キーがおそらく時間(または単に自動インクリメントされた整数)であるマップのようなデータ構造を探しています。そして、値はブロックのIDです。
挿入時にキーでデータを並べ替え、O(1)時間で特定のキーの値を取得する既存のデータ構造はありますか?
たとえば、JavaのHashMapには定数時間ルックアップがありますが、実装しているアルゴリズムに応じて、すべてのキーを取得して並べ替え、最後または最初を選択する必要があります。SortedMapは私が何をすべきか?LRUおよびMRUの実装でうまく機能する他のデータ構造を提案しますか?
ありがとう