我正在尋找一個簡潔高效的方式來從使用Java 8流的兒童列表中獲取唯一父母列表。流分組:兒童列表到唯一的父列表
對於例如,我有這兩個簡單的類:
public class Child{
private Parent parent;
public Child(Parent parent){
this.parent = parent;
}
public Parent getParent(){
return this.parent;
}
}
public class Parent{
private List<Child> children;
public Parent(){
this.children = new ArrayList<Child>();
}
public void addChild(Child child){
this.children.add(child);
}
}
首先,我得子對象的列表一些方法。
孩子可能屬於多個父母,可能與父母發生碰撞。
List<Child> children = getChildren();
然後:
List<Parent> uniqueParents = children
.stream()
.collect(Collectors.groupingBy(Child::getParent))
.keySet()
.stream()
.collect(Collectors.toList());
所以它的工作原理,但我想避免雙流和收集。
這是可能的直接在一個流?
不錯,正是我想要的,謝謝 – singe3