我有一个方法:
包含CustomObjects列表,
获取变量参数
并且应该返回带有param对象ID的字符串列表
CustomObject看起来像:
{
"id": "1a",
"secondObjectList": [{
"name": "a",
"params": ["param1", "param2", "param3"]
},
{
"name": "b",
"params": ["param2"]
}]
}
当对象只有一个参数时,流的方法有效:
public List<String> findObjectsIdsThatHaveParam(List<CustomObject> objectsList, String param) {
return objectsList.stream()
.filter(object -> object.getSecondObjectList.get(0).getParams().contains(param))
.map(CustomObject::getId)
.collect(Collectors.toList());
}
我不知道如何通过params arrayList进行迭代。你知道我怎么用流吗?
答案 0 :(得分:1)
我认为你对如何迭代所有元素感到困惑,直到满足所提供的标准。
流利用内部迭代,所以你可以
从getSecondObjectList
创建一个流,并使用anyMatch
提供您的标准。
.filter(object -> object.getSecondObjectList.stream()
.anyMatch(e -> e.getParams().contains(param)))
...
...