我有一个名为Time with fields的实体/表格:
Integer id;
Date date;
Integer value;
另一种名为SummaryForm的表单
String title;
String descr;
List<Object> newList;
如何使用Java 8界面提高地图使用率。 现在我有一个if语句:
if (map.containsKey(key)) {
map.get(key).newList().add(new SummaryForm(time.getDate(), time.getValue()));
}
有没有简单的方法来改进它以避免if语句,使用map.containsKey? 在我看来,我需要像putIfPresent这样的东西,但似乎只有putIfAbsent方法。
答案 0 :(得分:6)
由于引入了默认方法(因此保留了向后兼容性),Java 8中有几种新方法可以扩展Map
接口。
没有putIfPresent
,但有replace()
种方法会以这种方式运作。
但是,您似乎在这里寻找computeIfPresent
:
map.computeIfPresent(key, (k, value) -> {
value.newList().add(new SummaryForm(time.getDate(), time.getValue());
return value;
})