假设我有一个int列表
1,2,3,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)
如果数字是偶数,如何添加,如果数字是奇数,如何减去?我可以使用for循环执行此操作,但我想知道如何使用stream和Java等新的Java 8功能filter
一个可能的解决方案是将数组中的每个值映射到它自己(如果它是偶数),如果它是奇数则映射到它的相反值.这样,通过对结果求和,您将添加所有偶数并减去所有奇数.
您可以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)