Java流TakeUntil过滤/收集100个元素

时间:2018-10-09 13:39:19

标签: java functional-programming stream java-stream

我想使用像这样的流

mouseleave

,但是一旦我准备好收集最多100个元素,就立即停止过滤。如何在不过滤全部并调用List<String> result = myArr .stream() .filter(line -> !"foo".equals(line)) .collect(Collectors.toList()); 的情况下实现这一目标?

1 个答案:

答案 0 :(得分:9)

您可以在{strong> limit之后使用filter

List<String> result = myArr
    .stream()
    .filter(line -> !"foo".equals(line))
    .limit(100) 
    .collect(Collectors.toList());

这将在过滤后找到100个项目后停止流(limit是短路流操作)。