LinkedHashMap与LRU
2021-10-12 本文已影响0人
抬头挺胸才算活着
LRU:是最近最少使用算法,在内存置换的时候,需要选择最近最少使用的内存块。
下面代码解释,构造器参数的true表示读取的时候也会将元素放到最后去。
public static void main(String[] args) {
final int limit = 5;
LinkedHashMap<Integer, String> map = new LinkedHashMap(16, 0.75f, true) {
@Override
protected boolean removeEldestEntry(Map.Entry eldest) {
return size() > limit;
}
};
for (int i = 0; i < 10; i++) {
map.put(i, String.valueOf(i));
}
String v = map.get(6);
map.keySet().forEach(System.out::print);
}
输出结果:57896