LinkedHashMap实现LRU算法

 public LinkedHashMap<String, String> keyMap;
    private Integer si = 5;
    public String eldestKey;

    @Before
    public void init() {
        keyMap = new LinkedHashMap<String, String>(si, .75F, true) {
            private static final long serialVersionUID = 4485729692063620114L;
            @Override
            protected boolean removeEldestEntry(Map.Entry<String, String> eldest) {
                boolean tooBig = size() > si;
                if (tooBig) {
                    eldestKey = eldest.getKey();
                }
                return tooBig;
            }
        };
    }

    @Test
    public void test01() {
        System.out.println(keyMap.put("1", "2"));
        System.out.println(keyMap.put("2", "2"));
        System.out.println(keyMap.put("3", "2"));
        System.out.println(keyMap.put("4", "2"));
        System.out.println(keyMap.put("5", "2"));
        System.out.println(keyMap.put("6", "2"));
        System.out.println(keyMap.put("7", "2"));
        System.out.println(keyMap.put("8", "2"));
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容