lambda表达式可以替代吗?使用当前的代码,我无法访问变量maxCnt,对其进行修改并发送回使用。
int maxCnt = 0;
incoming.stream().forEach(a -> {
Integer cnt = wordFrequency.get(a);
if (cnt != null) {
if (cnt > maxCnt) {
maxCnt = cnt;
}
}
});
Run Code Online (Sandbox Code Playgroud)
当然可以,您可以执行以下操作:
int maxCnt = incoming.stream()
.map(wordFrequency::get)
.filter(Objects::nonNull)
.mapToInt(Integer::intValue)
.max().orElse(0);
Run Code Online (Sandbox Code Playgroud)