首页 > 解决方案 > 有没有办法在 Stream() 中使用 Stream()?

问题描述

我有以下对象,我想使用 Stream() 来获取名称等于“目标”的第一个输入参数,这可能吗?或者我只能流式传输 inputParam?

    "flow": [
        {
            "step": [
                {
                    "inputParam": [
                        {
                            "name": "inputname",
                            "value": "value"
                        }
                    ]
                }
            ]
        }
    ]
}```

标签: javajava-stream

解决方案


flatMap在流中使用。

更多关于地图和平面地图

 Optional<InputParam> optionalInputParam = flowCollection.stream()
                .flatMap(flow -> flow.getSteps().stream())
                .flatMap(step -> step.getInputParams().stream())
                .filter(inputParam -> inputParam.getName().equals("target"))
                .findFirst();

这是假设您拥有stepsin Flowobject 和inputParamsin Stepobject 并在这些属性上定义了 getter。


推荐阅读