Java 8流-迭代器无法按预期工作

尖阁

为什么.next()返回7而不是我期望的8?

List<Integer> intList = new ArrayList<>();

IntStream.range(0, 10)
    .forEach(i -> intList.add(i));

int value = intList.stream()
            .filter(number -> number == 7)
            .iterator()
            .next();         // returns 7, not 8.
亚当·巴特金

过滤器将流过滤为仅符合条件的元素number == 7(即,只有一个元素,恰好是Integer 7),然后next()返回第一个(也是唯一的)元素。请记住,为了从中获取第一个元素Iterator,您需要调用next()一次。

如果您确实想要此有序列表中7之后的第一个元素,则可以将过滤器更改为number -> number > 7

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章