java - 有没有办法在 Stream() 中使用 Stream()?
问题描述
我有以下对象,我想使用 Stream() 来获取名称等于“目标”的第一个输入参数,这可能吗?或者我只能流式传输 inputParam?
"flow": [
{
"step": [
{
"inputParam": [
{
"name": "inputname",
"value": "value"
}
]
}
]
}
]
}```
解决方案
flatMap
在流中使用。
Optional<InputParam> optionalInputParam = flowCollection.stream()
.flatMap(flow -> flow.getSteps().stream())
.flatMap(step -> step.getInputParams().stream())
.filter(inputParam -> inputParam.getName().equals("target"))
.findFirst();
这是假设您拥有steps
in Flow
object 和inputParams
in Step
object 并在这些属性上定义了 getter。
推荐阅读
- java - 将数字总和递归减少到一位数字
- c++ - 我可以在运行时检查内置类型吗?
- node.js - 在 Angular 的 rxjs 订阅方法中捕获错误消息文本
- google-maps - 有没有办法知道一条道路有多少条车道?
- python - KeyError:使用 conda install 安装底图时出现“PROJ_LIB”
- python - 检查集合中的所有点是否在同一条线上
- java - 在 try catch 块内执行 if-else 循环的问题
- google-maps-api-3 - 来自地理编码 API 的响应
- javascript - 更改默认 Laravel Mix Minimizer/Minifier (webpack)
- java - Eclipse、JavaFX:代码在 IDE 中运行,但不在可运行的 jar 中