C# または Java で容量制限のある汎用 MruList をどのように実装しますか?
最近使用したキャッシュまたはリスト (= MruList) を表すクラスが必要です。これは一般的であり、インスタンス化時に指定された容量 (カウント) に制限されている必要があります。インターフェイスを次のようにしたいと思います。
public interface IMruList<T>
{
public T Store(T item);
public void Clear();
public void StoreRange(T[] range);
public List<T> GetList();
public T GetNext(); // cursor-based retrieval
}
各 Store() は、アイテムをリストの一番上 (先頭?) に配置する必要があります。GetList() は、最新のstoreで並べ替えられた順序付きリスト内のすべてのアイテムを返す必要があります。Store() を 20 回呼び出し、リストの長さが 10 項目である場合、最近保存された 10 項目のみを保持したいと考えています。GetList と StoreRange は、アプリの起動時とシャットダウン時に MruList の取得と保存をサポートすることを目的としています。
これは、GUI アプリをサポートするためのものです。保存されたアイテムのタイムスタンプも知りたいと思うかもしれません。多分。わからない。
内部的には、それをどのように実装しますか?またその理由は?
(いいえ、これはコースの割り当てではありません)