替代lambda

-2 java lambda java-stream

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)

Ous*_* D. 5

当然可以,您可以执行以下操作:

int maxCnt = incoming.stream()
          .map(wordFrequency::get)
          .filter(Objects::nonNull)
          .mapToInt(Integer::intValue)
          .max().orElse(0);
Run Code Online (Sandbox Code Playgroud)

  • `wordFrequency :: get`? (4认同)