正在阅读:
Collectors.groupingBy()返回排序后的结果
背景:
数据库中查出了一个list集合,需要对该集合进行分组汇总如
A:[]
B:[]
C:[]
如此格式的map
List<TableEntity> entity= entityService.list(); Map<String, List<String>> entityMap = entity.stream().collect( Collectors.groupingBy(TableEntity::getStringKey,Collectors.mapping(TableEntity::getListString, Collectors.toList() ) ));虽然在service获取List时已经按照条件进行了排序,但是在使用Collectors.groupingBy()方法时,最终形成的map是无序的,因为Collectors.groupingBy返回的是一个无序的HashMap,因此,这里需要用到LinkedHashMap来使
HashMap变的有序(JDK1.4+),因此,做如下修改。
Map<String, List<String>> entityMap = entity.stream().collect( Collectors.groupingBy(TableEntity::getStringKey, LinkedHashMap::new ,Collectors.mapping(TableEntity::getListString, Collectors.toList() ) ));
该日志由 bemender 于 2020年09月26日 发表
转载请注明文本地址:https://www.bemhome.com/post/16.html