java map求和、LinkHashMap最近最少使用 自我新认知

最近一直在看java核心技术卷,对自己java基础知识在补强下,学习过程中看到之前自己好多不熟悉的知识,这种可能从我这里不经常使用,所以进行自我总结下:

1.需求:统计某个key值总数

之前写法:

HashMap hashMap  = new HashMap<>();

if (!hashMap.containsKey("ceshi")) {

hashMap.put("ceshi",1);

}else{

hashMap.put("ceshi",hashMap.get("ceshi")+1);

}

或者

hashMap.put("ceshi",hashMap.getOrDefault("ceshi",0)+1);

jdk8写法:

hashMap.merge("ceshi",1,Integer::sum);

2.linkHashmap认知,需求:key值按照put顺序排序或者按照访问顺序排序或者

实现最近最少使用(缓存技术可能会用到)

//按照插入顺序排序

LinkedHashMap linkedHashMap1  =new LinkedHashMap(100, (float)0.75,false);

//按照访问顺序排序,总是把最近访问放在链表最后面

LinkedHashMap linkedHashMap  =new LinkedHashMap(5, (float)0.75,true);

//这个可以实现最近最少使用,一直没用的一直在队列的最上面,控制长度是5,

每次新增将上面的删除,使用最近做少使用原则来处理,不能总缓存

LinkedHashMap linkedHashMap2  =new LinkedHashMap(5, (float)0.75,true){

@Override

    protected boolean removeEldestEntry(Map.Entry eldest) {

return size() >5;

}

};

你可能感兴趣的:(java map求和、LinkHashMap最近最少使用 自我新认知)