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

Mah*_*bub 2 java java-8

假设我有一个int列表

1,2,3,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)

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

Tun*_*aki 6

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

您可以IntStream从int数组中检索一个Arrays.stream(array),然后使用它map来转换偶数和奇数值,最后调用sumsum所有值.

示例代码:

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();
Run Code Online (Sandbox Code Playgroud)