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