Добавить в корзинуПозвонить
Найти в Дзене
Java

💡 Java совет: LRU Cache за 10 строк

Можно реализовать LRU (Least Recently Used) cache буквально в пару строк с помощью LinkedHashMap. Главная идея: — используем порядок доступа (accessOrder = true) — переопределяем removeEldestEntry Пример: int capacity = 3; Map<Integer, String> cache = new LinkedHashMap<>(capacity, 0.75f, true) { protected boolean removeEldestEntry(Map.Entry eldest) { return size() > capacity; } }; cache.put(1, "one"); cache.put(2, "two"); cache.put(3, "three"); cache.get(1); // обновили "свежесть" cache.put(4, "four"); // удалится 2 (LRU) System.out.println(cache); Почему это полезно: — O(1) операции — минимум кода — встроенная реализация без велосипедов Используй, если нужен быстрый in-memory cache без лишней сложности. #Java #Backend #SystemDesign

💡 Java совет: LRU Cache за 10 строк

Можно реализовать LRU (Least Recently Used) cache буквально в пару строк с помощью LinkedHashMap.

Главная идея:

— используем порядок доступа (accessOrder = true)

— переопределяем removeEldestEntry

Пример:

int capacity = 3;

Map<Integer, String> cache = new LinkedHashMap<>(capacity, 0.75f, true) {

protected boolean removeEldestEntry(Map.Entry eldest) {

return size() > capacity;

}

};

cache.put(1, "one");

cache.put(2, "two");

cache.put(3, "three");

cache.get(1); // обновили "свежесть"

cache.put(4, "four"); // удалится 2 (LRU)

System.out.println(cache);

Почему это полезно:

— O(1) операции

— минимум кода

— встроенная реализация без велосипедов

Используй, если нужен быстрый in-memory cache без лишней сложности.

#Java #Backend #SystemDesign