计算java 8流中的传递和失败谓词

时间:2015-02-10 00:08:26

标签: java lambda java-8 java-stream

假设您有一个表示学生分数的整数流。 [10,50,100,95,80,70,65,9010,100]和密码大于或等于50.你如何获得学生人数' m'对于下一个' n'通过的学生。需要从目前的位置开始,只检查n + m学生。

在该示例中,对于起始位置= 0和n = 3 [50,100,95],m = 1 [10]。 给定一个流和数字' n,需要找出' m'

1 个答案:

答案 0 :(得分:2)

要计算传递和失败的谓词,您可以使用

.collect(
    Collectors.partitioningBy(
        n -> n > 50,
        Collectors.counting()
    )
);

对于基于谓词跳过元素,流不支持。你可以把一些丑陋的东西卖掉,然后让它起作用,但你应该只使用常规循环。