Java 有没有办法在Stream()中使用Stream()?
我有下面的对象,我想使用Stream()来获取第一个输入参数,其中名称等于“target” 可能吗?或者我只能流式传输inputParamJava 有没有办法在Stream()中使用Stream()?,java,java-stream,Java,Java Stream,我有下面的对象,我想使用Stream()来获取第一个输入参数,其中名称等于“target” 可能吗?或者我只能流式传输inputParam "flow": [ { "step": [ { "inputParam": [ {
"flow": [
{
"step": [
{
"inputParam": [
{
"name": "inputname",
"value": "value"
}
]
}
]
}
]
}```
在流中使用
flatMap
可选选项InputParam=flowCollection.stream()
.flatMap(flow->flow.getSteps().stream())
.flatMap(步骤->步骤.getInputParams().stream())
.filter(inputParam->inputParam.getName().equals(“目标”))
.findFirst();
这是假设您在
Flow
对象中有steps
,在Step
对象中有inputParams
,并且在这些属性上定义了getter。您尝试过吗?如果流迭代的元素是排序的集合,为什么不能使用流呢?谢谢!这就是解决办法。这条小溪对我来说是新的,所以我还在学习。
Optional<InputParam> optionalInputParam = flowCollection.stream()
.flatMap(flow -> flow.getSteps().stream())
.flatMap(step -> step.getInputParams().stream())
.filter(inputParam -> inputParam.getName().equals("target"))
.findFirst();