对一个集合的元素执行操作并迭代结果以执行其他操作

如果我有2个collections,

List domainArr; List personArr; 

我想对String中的每个元素进行一次小的转换,然后遍历personArr

 List urlArr = strArr.stream() .map(str -> "https://" + strArr) .collect(Collectors.toList()); 

我有一个方法

 List getPersons(String url){ /*makes a restful call to the url and gets a List of objects for each URL.*/ } 

我想迭代来自urlArr的每个url并将其传递给getPersons(url)方法,并且对于每个获得的结果(List),我想迭代该人并对这些人执行更多操作

 persons.stream() .filter(Objects::nonNull) .map(Person::getName) .filter(Objects::nonNull) .collect(Collectors.toList()); 

我希望从所有结果中得到所有人名。

我想知道如何在Java 8中实现这一function。任何指针?

您可以使用flatMapList流转换为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());