Встречается на 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.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы