Sen*_*aku 1 java lambda iterator 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.
Run Code Online (Sandbox Code Playgroud)
过滤器将流过滤到仅与条件匹配的元素number == 7(即只有一个元素,恰好是整数7),然后next()返回第一个(也是唯一的)元素.请记住,为了从中获取第一个元素Iterator,您需要调用next()一次.
如果您确定需要此有序列表中7之后的第一个元素,则可以将过滤器更改为number -> number > 7.