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删除。

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

推荐阅读更多精彩内容