怎么使用java的stream流groupBy的时候将key转为另一种类型的list
可以使用Collectors.groupingBy()方法的第一个参数来指定key的生成方式,将原始的key转换为另一种类型的list。
例如,假设有一个Person类,有name和age两个属性,现在想要按照age分组,并将age转换为一个List
List<Person> personList = Arrays.asList(
new Person("Tom", 20),
new Person("Jerry", 20),
new Person("Lucy", 30),
new Person("Lily", 30)
);
Map<List<String>, List<Person>> ageGroupMap = personList.stream()
.collect(Collectors.groupingBy(
person -> Collections.singletonList(String.valueOf(person.getAge()))
));
System.out.println(ageGroupMap);
输出结果为:
{[20]=[Person{name='Tom', age=20}, Person{name='Jerry', age=20}], [30]=[Person{name='Lucy', age=30}, Person{name='Lily', age=30}]}
可以看到,按照age分组后,key被转换为了List
原文地址: https://www.cveoy.top/t/topic/vvh 著作权归作者所有。请勿转载和采集!