【发布时间】:2018-10-04 08:57:44
【问题描述】:
我想把List 变成不同的东西。
我有一个这样的 POJO 类(我在这里删除了 getters/setters):
public class Person {
private String personId;
private String registrationId;
}
一个Person (personId) 可以有多个registrationId,所以不同的Person 实例可能引用同一个真实的人(但有不同的registrationId)。
我有一个List<Person> persons,如下所示,包含 3 个元素:
persons = [{"person1", "regis1"}, {"person1", "regis2"}, {"person2", "regis1"}];
我想要这样的东西(这样每个键都指向一个人,并且对于每个人我都得到了registrationId的列表):
Map<String, List<String>> personsMap = [ "person1" : {"regis1", "regis2"}, "person2" : {"regis2"}]
我知道我可以这样做:
Map<String, List<Person>> map = persons.stream().collect(Collectors.groupingBy(Person::getPersonId));
但我有一个Map<String,List<Person>>,我想要一个Map<String,List<String>>
有什么想法吗?
谢谢
【问题讨论】:
标签: java collections java-8 java-stream