gpt4 book ai didi

java - 基于城市的 Collection 家分组

转载 作者:行者123 更新时间:2023-11-30 07:43:24 25 4
gpt4 key购买 nike

我有一个人对象,它有一个名字和一个地址列表作为参数。地址有街道、类型、城市和 personId我想按城市获取分组 map 。我卡住了

到目前为止,这是我的代码:

Map<String,List<Person>> MAP = personRepository.findAll().stream() 
.collect(Collectors.groupingBy(person->person.getAddresses().stream()
.map(address -> address.getCity())
."some kind of collector I assume"))

最佳答案

您可以使用 flatMap 来做到这一点:

Map<String, List<Person>> finalPersonMap = personRepository.findAll().stream()
.flatMap(person -> person.getAddresses().stream()
.map(address -> new AbstractMap.SimpleEntry<>(address.getCity(), person)))
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));

假设基本模型如下:

static class Person {
List<Address> addresses;

List<Address> getAddresses() {
return addresses;
}
}

static class Address {
String city;

String getCity() {
return city;
}
}

关于java - 基于城市的 Collection 家分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53506045/

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