deg*_*ath 3 java dictionary java-8
我有一个名为Time with fields的实体/表单:
Integer id;
Date date;
Integer value;
Run Code Online (Sandbox Code Playgroud)
另一种称为SummaryForm的形式
String title;
String descr;
List<Object> newList;
Run Code Online (Sandbox Code Playgroud)
如何使用Java 8接口提高地图使用率.现在我有一个if语句:
if (map.containsKey(key)) {
map.get(key).newList().add(new SummaryForm(time.getDate(), time.getValue()));
}
Run Code Online (Sandbox Code Playgroud)
是否有任何简单的方法来改进它以避免if语句,使用map.containsKey?在我看来,我需要像putIfPresent这样的东西,但似乎只有putIfAbsent方法.
Map由于引入了默认方法,Java 8中有几种新方法可以扩展接口,因此可以保持向后兼容性.
没有putIfPresent,但有一些replace()方法可以这样工作.
但是看起来你在computeIfPresent这里寻找:
map.computeIfPresent(key, (k, value) -> {
value.newList().add(new SummaryForm(time.getDate(), time.getValue());
return value;
})
Run Code Online (Sandbox Code Playgroud)