Встречается на 2% собеседований по Java
Какая структура данных используется для кэшей
LRU (Least Recently Used) кэш обычно реализуется на основе LinkedHashMap или комбинации HashMap + DoublyLinkedList.
Пример на LinkedHashMap:
java
import java.util.LinkedHashMap;
import java.util.Map;
public class LRUCache<K, V> extends LinkedHashMap<K, V> {
private final int capacity;
text
public LRUCache(int capacity) {
super(capacity, 0.75f, true);
this.capacity = capacity;
}
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > capacity;
}}
text
**Почему так?**
- **HashMap** обеспечивает O(1) доступ к элементам.
- **DoublyLinkedList** помогает отслеживать порядок использования (head – самый новый, tail – самый старый).
- **LinkedHashMap** объединяет оба подхода, поддерживая порядок вставки/доступа.
Для сложных сценариев (например, распределённых кэшей) используют Redis, Memcached.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы