Java Streams TakeUntil过滤/收集的100个元素

Phi*_*hil 5 java functional-programming stream java-stream

我想使用以下流:

List<String> result = myArr
    .stream()
    .filter(line -> !"foo".equals(line))
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但是,一旦我准备好收集最多100个元素,就停止过滤.如何在不过滤所有和调用的情况下实现此目的subList(100, result.size())

ern*_*t_k 9

您可以使用limit filter:

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

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