濤。

t.

关于Collectors.groupingBy分组后乱序的问题

原因:

Collectors.groupingBy分组后默认返回HashMap类型,HashMap是无序的

解决:

将HashMap类型修改为LinkedHashMap即可

示例:

newList = list
            .stream()
            .sorted(Comparator.comparing(Student::getSage))
            .collect(Collectors.groupingBy(Student::getSage, LinkedHashMap::new, Collectors.toList()));


--  Collectors.groupingBy  观看源码可知
--  Student::getSage  (Function<? super T, ? extends K> classifier)解释:根据字段进行分组
--  LinkedHashMap::new  (Supplier<M> mapFactory)解释:分组最后用什么容器保存返回
--  Collectors.toList()  (Collector<? super T, A, D> downstream)解释:收集分类的结果的收集器

posted on 2021-12-03 13:31  濤。  阅读(1729)  评论(0编辑  收藏  举报

导航