Назад к вопросам
Junior — Middle
68
Какая структура данных подойдет для реализации базового механизма кэширования?
Ответ от нейросети
sobes.tech AI
Для базового механизма кэширования в Java часто используют структуру данных LinkedHashMap. Она позволяет хранить пары ключ-значение и при этом поддерживает порядок вставки или порядок доступа, что удобно для реализации политики удаления старых элементов (например, LRU — Least Recently Used).
Пример простого кэша с ограничением по размеру:
import java.util.LinkedHashMap;
import java.util.Map;
public class SimpleCache<K, V> extends LinkedHashMap<K, V> {
private final int maxEntries;
public SimpleCache(int maxEntries) {
super(maxEntries + 1, 1.0f, true); // true для порядка доступа
this.maxEntries = maxEntries;
}
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > maxEntries;
}
}
Такой кэш автоматически удаляет самый старый элемент при превышении максимального размера.