java - Java Streams TakeUntil 100 个元素过滤/收集
问题描述
我想使用如下流:
List<String> result = myArr
.stream()
.filter(line -> !"foo".equals(line))
.collect(Collectors.toList());
但是一旦我准备好收集最多 100 个元素,就立即停止过滤。我怎样才能在不过滤所有和调用的情况下实现这一点subList(100, result.size())
?
解决方案
您可以limit
在之后 filter
使用:
List<String> result = myArr
.stream()
.filter(line -> !"foo".equals(line))
.limit(100)
.collect(Collectors.toList());
这将在过滤后找到 100 个项目后停止流(limit
是短路流操作)。
推荐阅读
- typescript - Testcafe - 如何将 document.querySelector 用于相同的影子域?
- dataweave - Dataweave 将 xml 的重复元素组合到对象中,并将节点路径作为键
- curl - 尝试刷新访问令牌时出现 Google Oauth2 invalid_grant 错误
- angular - Angular - ng.ps1 无法加载,因为在此系统上禁用了运行脚本
- python - 如何使用其 URL 从私有 S3 存储桶下载文件?
- laravel - 如何将此原始 SQL 查询转换为 Laravel Eloquent
- rest - Keycloak Admin REST API:查询超过 100 个资源对象
- esp8266 - ESP8266 上的 UDP 套接字连接问题(AT 命令)
- c - clang-tidy 报很多错误:unknown argument
- reactjs - 刷新页面时未定义带有react-leaflet窗口的下一个js