我有一个Model
and a Property
具有以下签名的类:
public class Property {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Model {
private List<Property> properties = new ArrayList<>();
public List<Property> getProperties() {
return properties;
}
}
我想要一个Map<String, Set<Model>>
from a List<Model>
其中键是来自的名称Property
班级。我如何使用 java8 流按其列表对该列表进行分组Propery
es的名字?全部Property
es 的名称是唯一的。
可以在单个流中解决,还是应该以某种方式将其拆分或采用经典解决方案?
yourModels.stream()
.flatMap(model -> model.getProperties().stream()
.map(property -> new AbstractMap.SimpleEntry<>(model, property.getName())))
.collect(Collectors.groupingBy(
Entry::getValue,
Collectors.mapping(
Entry::getKey,
Collectors.toSet())));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)