imp*_*eto 7 java collections java-8
我有以下问题:鉴于这些类,
class Person {
private String zip;
...
public String getZip(){
return zip;
}
}
class Region {
private List<String> zipCodes;
...
public List<String> getZipCodes() {
return zipCodes;
}
}
Run Code Online (Sandbox Code Playgroud)
使用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())));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1344 次 |
| 最近记录: |