gpt4 book ai didi

java - 如何在 Java 8 中按另一个列表的元素对列表的元素进行分组

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:08 27 4
gpt4 key购买 nike

我有以下问题:给定这些类,

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())));

关于java - 如何在 Java 8 中按另一个列表的元素对列表的元素进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30245142/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com