我有一个名为 Time 的实体/表单,其中包含字段:
Integer id;
Date date;
Integer value;
还有另一种形式叫做 SummaryForm
String title;
String descr;
List<Object> newList;
如何使用 Java 8 界面改进 map 使用。 现在我有一个 if 语句:
if (map.containsKey(key)) {
map.get(key).newList().add(new SummaryForm(time.getDate(), time.getValue()));
}
是否有任何简单的方法可以改进它以避免 if 语句,t 和 map.containsKey? 在我看来,我需要类似 putIfPresent 的东西,但似乎只有一个 putIfAbsent 方法。
最佳答案
由于引入了默认方法(因此保持了向后兼容性),Java 8 中有几个新方法扩展了 Map
接口(interface)。
没有 putIfPresent
,但是有 replace()
方法可以那样工作。
但是看起来您正在寻找 computeIfPresent
在这里:
map.computeIfPresent(key, (k, value) -> {
value.newList().add(new SummaryForm(time.getDate(), time.getValue());
return value;
})
关于java - 通过 java 8 接口(interface)改进 if containsKey in map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48558234/