Wie würden Sie eine kapazitätsbeschränkte, generische MruList in C# oder Java implementieren?Effiziente Modellierung einer MruList in C# oder Java
Ich möchte eine Klasse haben, die einen zuletzt verwendeten Cache oder Liste (= MruList) darstellt. Es sollte generisch sein und auf eine Kapazität (Anzahl) beschränkt sein, die bei der Instanziierung angegeben wird. Ich würde die Schnittstelle gerne so etwas wie sein: (vorne)
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
}
Jeden Speicher() soll das Element an der Spitze setzt auf der Liste. Die GetList() sollte alle Elemente in einer geordneten Liste zurückgeben, geordnet nach dem letzten Store. Wenn ich Store() 20 Mal anrufe und meine Liste 10 Artikel lang ist, möchte ich nur die 10 zuletzt gespeicherten Artikel behalten. Die GetList und StoreRange sollen das Abrufen/Speichern der MruList beim Starten und Beenden der App unterstützen.
Dies ist eine GUI-App zu unterstützen. Ich denke, ich möchte vielleicht auch den Zeitstempel eines gespeicherten Artikels wissen. Könnte sein. Nicht sicher.
Intern, wie würden Sie es implementieren, und warum?
(nein, das ist keine Kurszuordnung)