關於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)解釋:收集分類的結果的收集器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM