У меня есть контейнер фиксированного размера содержащий упорядоченные элементы. В конструкторе я передаю в него его максимальный размер и функцию сравнения. При добавлении элемента, контейнер использует функцию сравнения и добавляет новый элемент к другим элементам так, чтобы сохранить порядок от лучшего к худшему и, если достигнут предел, выбрасывает худший элемент.
Есть ли у такого контейнера каноническое название (английский и русский термины) ?
Ответ
На мой взгляд, канонического названия у такой структуры нет. В зависимости от задачи она может иметь разные названия. Как примеры:
LRU Cache: в данной структуре данные упорядочиваются по частоте обращений к ним, наименее используемые удаляются при достижении заданного размера кэша.
MRU Cache: такой же принцип, но в отличии от LRU вытесняется последний использованный элемент.
EvictingQueue: структура данных из Guava, первый элемент очереди удаляется, если очередь заполнена. Также есть MinMaxPriorityQueue
CircularFifoQueue: структура данных из Apache Commons, заменяет старейший элемент, если очередь заполнена.
Думаю, в зависимости от семантики структуры данных и принципа ее реализации (на основе очереди, хэш-таблицы или еще какой-либо лежащий в основе структуры) название может варьироваться.
Комментариев нет:
Отправить комментарий