gpt4 book ai didi

java - 使用流将对象列表转换为Map >

转载 作者:行者123 更新时间:2023-12-03 16:29:59 26 4
gpt4 key购买 nike

我想使用Map<Long, List<>>将Student对象的列表转换为streams

List<Student> list = new ArrayList<Student>();
list.add(new Student("1", "test 1"));
list.add(new Student("3", "test 1"));
list.add(new Student("3", "test 3"));
我希望通过以下方式获得最终结果:
map
关键点:1
值 list : Student("1", "test 1")关键点:3
值 list : Student("3", "test 1"), Student("3", "test 3")我尝试了以下代码,但是它正在重新初始化 Student对象。谁能帮我修复以下代码?
Map<Long, List<Student>> map = list.stream()
.collect(Collectors.groupingBy(
Student::getId,
Collectors.mapping(Student::new, Collectors.toList())
));

最佳答案

您不需要链接mapping收集器。默认情况下,单个参数groupingBy将为您提供一个Map<Long, List<Student>>

Map<Long, List<Student>> map = 
list.stream()
.collect(Collectors.groupingBy(Student::getId));

关于java - 使用流将对象列表转换为Map <Long,List <>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67294152/

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