今天面试的笔试题有道笔试题用泛型实现缓存
这是一种混合的数据结构,我们需要在哈希表的基础上建立一个链表。但是Java已经为我们提供了这种形式的数据结构-LinkedHashMap!它甚至提供可覆盖回收策略的方法。唯一需要我们注意的事情是,改链表的顺序是插入的顺序,而不是访问的顺序。但是,有一个构造函数提供了一个选项,可以使用访问的顺序。
import java.util.LinkedHashMap;
import java.util.Map;
public LRUCache<K, V> extends LinkedHashMap<K, V> {
private int cacheSize;
public LRUCache(int cacheSize) {
super(16, 0.75, true);
this.cacheSize = cacheSize;
}
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() >= cacheSize;
}
}转自:http://www.importnew.com/16264.html
本文介绍了一种使用Java中的LinkedHashMap来实现LRU(最近最少使用)缓存的方法。通过继承LinkedHashMap并覆盖removeEldestEntry方法,可以轻松创建符合LRU策略的缓存。文章还介绍了如何设置LinkedHashMap以按访问顺序而非插入顺序维护元素。
310

被折叠的 条评论
为什么被折叠?



