【发布时间】:2018-07-18 13:17:37
【问题描述】:
我有一小段代码可以计算给定数组中正值、负值和零值的数量。我可以通过迭代数组并计算正值、负值和零值的数量来使用 Java 7 轻松完成此操作。但是对于 Java 8 流,在 map 函数中编写条件是否正确?目前此代码仅迭代一次并跳过数组的其余值。
static void calculatePositiveNegativeAndZero(int[] arr) {
AtomicInteger positive = new AtomicInteger(0);
AtomicInteger zero = new AtomicInteger(0);
AtomicInteger negative = new AtomicInteger(0);
int len = arr.length;
Arrays.stream(arr)
.parallel()
.map(i -> i > 0 ? positive.getAndIncrement() : (i == 0 ? zero.getAndIncrement() : negative.getAndIncrement()));
System.out.println(positive.doubleValue()/len);
System.out.println(negative.doubleValue()/len);
System.out.println(zero.doubleValue()/len);
}
【问题讨论】:
-
如果真的对你有帮助,你可以accept and answer
标签: java arrays java-8 java-stream