3、LinkedHashMap

LinkedHashMap 会按照key的插入顺序排列。

LinkedHashMap继承了HashMap。所以和HashMap 的特性保持一致。他在HashMap之上多维护一个双向链表,在每次插入key时,会在链表的尾部添加当前节点。记录key的添加顺序。

LinkedHashMap 还可以作为一个 LRU缓存。他提供了一个removeEldestEntry方法,继承LinkedHashMap 并重写方法如下

 @Override
    protected boolean removeEldestEntry(Map.Entry eldest) {

        return size() > CACHE_SIZE;
    }

CACHE_SIZE 是我们定义的一个热缓存大小,当map的size 大于我们定义的CACHE_SIZE,就会把之前的最早添加(读取key不会重新排序)的key删除。

你可能感兴趣的:(3、LinkedHashMap)