LinkedHashMap结构简析 Java集合之LinkedHashMap

这篇讲得比较透彻Java集合之LinkedHashMap

本文属于源码阅读笔记。

1.LinkedHashMap简要介绍。

LinkedHashMap继承hashMap,并维护一个双向链表保持有序

2.LRU应用

package hashmap_thread;

import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author [email protected]</br> Created By: 2018-12-17 下午6:22:17
 */
public class LRU_cache {
    final static int cacheSize = 4;
    static Map lru1 = new LinkedHashMap<String, String>((int) Math.ceil(cacheSize / 0.75f) + 1,
            0.75f, true) {
        @Override
        protected boolean removeEldestEntry(Map.Entry<String, String> eldest) {
            return size() > cacheSize;
        }
    };

    public void synchMap() {
        lru1 = Collections.synchronizedMap(lru1);

    }

    public static void main(String[] args) {
        lru1.put("11", "aa");
        lru1.put("33", "cc");
        lru1.put("00", "dd");
        lru1.put("22", "hh");
        lru1.put("66", "kk");

        lru1.get("00");

        System.out.println(lru1);

    }
}

输出:
{33=cc, 22=hh, 66=kk, 00=dd}

猜你喜欢

转载自www.cnblogs.com/pu20065226/p/10136917.html