Java 8加法或减法取决于偶数奇数

时间:2015-10-30 12:53:55

标签: java java-8

假设我有一个int

列表
1,2,3,4,5,6,7,8,9,10

如果数字是偶数,如何添加,如果数字是奇数,如何减去? 我可以使用for循环执行此操作,但我想知道如何使用新的Java 8功能,如streamfilter

1 个答案:

答案 0 :(得分:6)

一种可能的解决方案是将数组中的每个值映射到自身(如果它是偶数),如果它是奇数则将其映射到相反的位置。这样,通过对结果求和,您将添加所有偶数并减去所有奇数。

您可以使用IntStream从int数组中检索Arrays.stream(array),然后使用map转换偶数和奇数值,最后调用sum对所有值求和。

示例代码:

int[] array = { 1,2,3,4,5,6,7,8,9,10 };
int sum = Arrays.stream(array).map(i -> i % 2 == 0 ? i : -i).sum();