java - Java Streams API:如何在整个列表结果的流内部执行操作?
问题描述
有没有办法使用流结果(List<Integer>
在我的情况下)在该列表上的函数内执行操作(一次全部)
所以代替这个:
var cardTypesToRemove = existingIds.stream()
.filter(c -> !cardTypeIds.contains(c))
.collect(Collectors.toList());
repository.deleteBy(cardTypesToRemove);
像这样的东西(请原谅我的伪代码)
var cardTypesToRemove = existingIds.stream()
.filter(c -> !cardTypeIds.contains(c))
.collect(Collectors.collectingAndThen(repository.saveAll(resultList)));
解决方案
不,只需将 的结果collect
作为常规方法参数传递即可。
var cardTypesToRemove = repository.saveAll(
existingIds.stream()
.filter(c -> !cardTypeIds.contains(c))
.collect(Collectors.toList());
推荐阅读
- qt - 从函数发出信号时出现 QT 错误
- python - 使用 PyMongo 在不同系统上连接 MongoDB
- mysql - MYSQL 查找每月交易的用户数
- powershell - Powershell 仅从 Get-ADUser 获取与字符串模式匹配的属性
- angularjs - zsh:找不到命令:nx
- javascript - 在 React js 中的一个页面中提交表单时在另一个页面中通知
- pytorch - 函数 CudnnConvolutionBackward 在索引 1 处返回无效梯度 - 得到 [294, 592, 1, 1] 但预期形状与 [294, 768, 1, 1] 兼容
- c - 将特殊文本文件输入到链表中并尝试打印
- c# - 如何在 Visual Studio Code 中更改控制台应用程序的图标?
- rpm - 如何修改 rpm 规范文件以将 tarball 安装到特定目录?