我有一个Person
对象的集合:
public class Person {
String name;
ChildrenListHolder childrenListHolder;
}
public class ChildrenListHolder {
List<Children> children;
}
public class Children {
String childrensName;
}
该实体结构由第三方提供。
现在,我需要一个 Map<String,List<Person>>
childrensName -> person-list
例如(简化版):
Person father: {name: "John", childrensListHolder -> {"Lisa", "Jimmy"}}
Person mother: {name: "Clara", childrensListHolder -> {"Lisa", "Paul"}}
Person george: {name: "George", childrensListHold -> "Paul"}}
我需要的地图是:
Map<String, List<Person>> map: {"Lisa" -> {father, mother},
"Jimmy" -> {father},
"Paul" -> {mother, george}}
我可以使用一堆for循环和if语句来实现。但是如何使用流和收集器来实现呢?我尝试了许多方法,但是无法得到预期的结果。谢谢。
Stream<Object>
,因此使用e.getKey
进行收集不起作用。 - t777stream().<Map.Entry<Children,Person>> flatMap(...)
吗? - Tunaki