我真的是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丢弃数字后,它就消失了。

10-08 08:40