我想将列表转换为 map ,如下所示。这是示例。
我让学生列出类似下面的代码片段的内容。从中获取一个 Hasmap,其中 Key 为 Integer,即 Age,value 为 List。
从下面的输入源中,我的回复应该如下所示。我该如何实现这一目标?
map [[10, {1}], [20, {2,3,4}], [30,{5}]。 [40,{6}]];
private static List<Person> getPersonTestData() {
List<Person> personList = new ArrayList<>();
personList.add(Person.of(1, "First1", "Last1", 10));
personList.add(Person.of(2, "First2", "Last2", 20));
personList.add(Person.of(3, "First3", "Last3", 20));
personList.add(Person.of(4, "First4", "Last4", 20));
personList.add(Person.of(5, "First5", "Last5", 30));
personList.add(Person.of(6, "First6", "Last6", 40));
return personList;
}
提前致谢......!
最佳答案
您可以在下游使用 groupingBy
和 mapping
来完成此操作,如下所示:
Map<Integer, List<Integer>> ageToIdsMap = getPersonTestData().stream()
.collect(Collectors.groupingBy(Person::getAge,
Collectors.mapping(Person::getId, Collectors.toList())));
关于java - 使用 Lambda 将 List<Person> 转换为 Map<Integer, List<Integer>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54872793/