首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过java 8接口在map中改进if containsKey

通过java 8接口在map中改进if containsKey
EN

Stack Overflow用户
提问于 2018-02-01 16:24:21
回答 1查看 1.6K关注 0票数 3

我有一个名为Time with field的实体/表单:

代码语言:javascript
复制
Integer id;
Date date;
Integer value;

和另一个名为SummaryForm的表单

代码语言:javascript
复制
String title;
String descr;
List<Object> newList;

如何使用Java 8接口提高地图的使用率。现在我有一个if语句:

代码语言:javascript
复制
if (map.containsKey(key)) {
            map.get(key).newList().add(new SummaryForm(time.getDate(), time.getValue()));
        }

有什么简单的方法可以改进它,以避免使用map.containsKey的if语句和t语句?在我看来,我需要像putIfPresent这样的东西,但似乎只有一个putIfAbsent方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-01 16:34:36

Java8中有几个新方法扩展了Map接口,这要归功于默认方法的引入(因此保持了向后兼容性)。

没有putIfPresent,但是有replace()方法可以这样工作。

但是,看起来您在这里查找的是computeIfPresent

代码语言:javascript
复制
map.computeIfPresent(key, (k, value) -> {
    value.newList().add(new SummaryForm(time.getDate(), time.getValue());
    return value;
})
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48558234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档