0
假设您有一个表示学生分数的整数流。 [10,50,100,95,80,70,65,90,10,100]并且pass-mark大于或等于50.你如何得到下一个'n'学生失败的学生'm'的数量通过。需要从目前的位置开始只考查n + m个学生。在java 8个流中计算合格和不合格谓词
在该示例中,对于起始位置= 0和n = 3 [50,100,95],m = 1 [10]。 给定流和数字'n',需要找出'm'。
假设您有一个表示学生分数的整数流。 [10,50,100,95,80,70,65,90,10,100]并且pass-mark大于或等于50.你如何得到下一个'n'学生失败的学生'm'的数量通过。需要从目前的位置开始只考查n + m个学生。在java 8个流中计算合格和不合格谓词
在该示例中,对于起始位置= 0和n = 3 [50,100,95],m = 1 [10]。 给定流和数字'n',需要找出'm'。
要计算通过和失败谓词,你可以使用
.collect(
Collectors.partitioningBy(
n -> n > 50,
Collectors.counting()
)
);
至于跳过基于谓词的元素,流不支持这一点。你可以使一些丑陋的东西变得难看,并使其工作,但你应该使用一个正常的循环。
流API中没有“从当前位置开始”。您为整个流定义一个终端操作;它不必处理所有项目,但在每种情况下都会消耗流。 – Holger 2015-02-10 09:24:54