Как бы вы реализовали общий MruList с ограниченным объемом в C # или Java?
Я хочу иметь класс, который представляет последний использованный кеш или список (= 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
}
Каждый магазин () должен поместить элемент в верхнюю (переднюю часть?) Списка. GetList () должен вернуть все элементы в упорядоченном списке, упорядоченном по последнему store . Если я вызову Store () 20 раз, а мой список будет состоять из 10 элементов, я хочу сохранить только 10 последних сохраненных элементов. GetList и StoreRange предназначены для поддержки поиска / сохранения MruList при запуске и завершении работы приложения.
Это для поддержки приложения с графическим интерфейсом.
Я думаю, что я мог бы также хотеть знать метку времени на сохраненном элементе. Может быть. Не уверен.
Внутренне, как бы вы это реализовали и почему?
(нет, это не задание курса)