欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JDK8中Map接口下的computeIfAbsent方法

程序员文章站 2022-06-08 22:19:34
...

computeIfAbsent方法是java8中新增的方法,该方法用于获取指定key的value值,同时指定当map中没有指定key的value时返回指定的函数式接口中定义的返回值。

例如下面一段代码

Map<String, List<JobPo>> jobQueueListMap =new HashMap<>();
List<JobPo> jobs = jobQueueListMap.get("1001");
if(Objects.isNull(jobs)){
   jobs = new ArrayList<>();
   jobs.add(new JobPo(1001L));
   jobQueueListMap.put("1001",jobs);
}
log.info("jobs: 【{}]", JSON.toJSONString(jobQueueListMap.get("1001")));

使用computeIfAbsent方法可以简化上面的实现

Map<String, List<JobPo>> jobQueueMap =new HashMap<>();
List<JobPo> jobPoList = jobQueueMap.computeIfAbsent("1001",(key)->{
    return new ArrayList<>();
});
jobPoList.add(new JobPo(1001L));
log.info("jobList: 【{}]", JSON.toJSONString(jobQueueMap.get("1001")));

相关标签: JDK java