如果我有2个收藏,
List<String> domainArr;
List<Person> personArr;
我想对字符串中的每个元素进行较小的转换,然后迭代 personArr 到
List<String> urlArr = strArr.stream()
.map(str -> "https://" + strArr)
.collect(Collectors.toList());
我有一个像这样的方法
List<Person> getPersons(String url){
/*makes a restful call to the url and gets a List of objects for each URL.*/
}
我想迭代 urlArr 中的每个 url 并将其传递给 getPersons(url) 方法,对于每个获得的结果(列表),我想迭代该人并对人执行更多操作,例如
persons.stream()
.filter(Objects::nonNull)
.map(Person::getName)
.filter(Objects::nonNull)
.collect(Collectors.toList());
我希望从所有结果中获得所有人名。
我想知道如何在 Java 8 中以函数方式执行此操作。有任何指针吗?
您可以使用flatMap
转换你的流List<T>
进入平流T
strArr.stream()
.map(str -> "https://" + strArr)
.map(url -> getPersons(url))
.flatMap(persons -> persons.stream())
.filter(Objects::nonNull)
.map(Person::getName)
.filter(Objects::nonNull)
.collect(Collectors.toList());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)