【发布时间】:2014-06-23 19:57:54
【问题描述】:
为什么 .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.
【问题讨论】:
-
我还没有真正有机会查看流 API,但不会使用
number -> number == 7进行过滤意味着流只有有7s留在里面?你能解释一下你为什么期待8吗? -
这对我来说是一个很大的误解。我试图将我的问题简化为上面的这段代码,但同时我失去了实际问题的本质。我想我必须打开另一个问题。很抱歉。
标签: java lambda iterator java-8