long fooCount = map.keySet().stream().filter(k -> k.contains("FOO")).count();
long barCount = map.size() - fooCount;
如果要并行化,请更改.stream()
为.parallelStream()
。
另外,如果您尝试手动增加变量并使用流并行化,则可能需要使用类似的方法AtomicLong
来提高线程安全性。即使编译器允许,简单变量也不是线程安全的。
Java 8 Lambda的问题,可在增加计数时实现有效的最终处理
long fooCount = map.keySet().stream().filter(k -> k.contains("FOO")).count();
long barCount = map.size() - fooCount;
如果要并行化,请更改.stream()
为.parallelStream()
。
另外,如果您尝试手动增加变量并使用流并行化,则可能需要使用类似的方法AtomicLong
来提高线程安全性。即使编译器允许,简单变量也不是线程安全的。