我有以下问题:鉴于这些课程,
class Person {
private String zip;
...
public String getZip(){
return zip;
}
}
class Region {
private List<String> zipCodes;
...
public List<String> getZipCodes() {
return zipCodes;
}
}
使用Java 8 Stream API,如何Map<Person, List<Region>>
根据Region
包含Person
的邮政编码获取一个?换句话说,如何按邮政编码属于这些区域的人对区域进行分组?
我已经以老式的方式在Java 7中完成了此操作,但是现在我必须迁移代码以利用Java 8的新功能。
谢谢,
推动力
我怀疑这样做最干净的方法-我对发布的其他答案不太满意-
persons.stream().collect(Collectors.toMap(
person -> person,
person -> regions.stream()
.filter(region -> region.getZipCodes().contains(person.getZip()))
.collect(Collectors.toList())));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句