假设我有一个int
列表1,2,3,4,5,6,7,8,9,10
如果数字是偶数,如何添加,如果数字是奇数,如何减去?
我可以使用for循环执行此操作,但我想知道如何使用新的Java 8功能,如stream
和filter
答案 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();