Sobes.tech
Назад к вопросам
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;
    }
}

Такой кэш автоматически удаляет самый старый элемент при превышении максимального размера.