我真的是Java 8中的函数式编程和这些功能的新手。
我正在尝试使用IntStream
做一些事情,但是我做不到一件简单的事情:如果我过滤了一些整数数组,如何修改和打印出未过滤的值?
因此,例如,如果我有一个数组[1,2,3,4]
,并且过滤了所有不均匀数,然后将它们加7,那么如何打印所有剩余的偶数呢?可以用一行代码完成吗?
这是一些示例代码:
int[] numbers={1,2,3,4,8,9,6};
IntStream.of(numbers)
.filter(i -> i % 2 != 0)
.map(i -> i + 7)
.forEach(System.out::println);
最佳答案
对于您提供的特定示例,我将条件元素添加到map
操作中,如下所示:
IntStream.of(1, 2, 3, 4, 8, 9, 6)
.map(i -> i % 2 != 0 ? i + 7 : i)
.forEach(System.out::println);
如果每个数字
i
都为奇数,则会映射到i + 7
,否则将保持不变。从Stream
丢弃数字后,它就消失了。