package com.bingo.frame;
import java.util.LinkedHashMap;
/**
* b.基于LinkedHashMap实现FIFO(先进先出)淘汰算法
* @author bingo
*/
public class BingoTest {
class SimpleFIFOCache extends LinkedHashMap<Object, Object> {
private int maxCap;
public SimpleFIFOCache(int maxCap) {
//防止扩容: (int)(maxCap/0.75+1)
super((int)(maxCap/0.75+1), 0.75f, false);//true:记录访问顺序, false:记录插入顺序
this.maxCap = maxCap;
}
/**
* 返回值通知map对象是否移除元素
* 1. true移除
* 2. false不移除
* 3. 此方法在put方法执行时调用
*/
@Override
protected boolean removeEldestEntry(java.util.Map.Entry<Object, Object> eldest) {
if (size() > maxCap) {
return true;
}
return false;
}
}
public static void main(String[] args) {
SimpleFIFOCache fifoCache = new BingoTest().new SimpleFIFOCache(5);
fifoCache.put("A", 100);
fifoCache.put("B", 100);
fifoCache.put("C", 100);
fifoCache.put("D", 100);
fifoCache.put(&
09-27
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交