Java8 stream 之groupingBy() 分组排序

Java8 stream 之groupingBy() 分组排序ListmatchsList=newArrayList();Map>MatchsListMap=matchsList.stream().collect(Collectors.groupingBy(Matchs::getMatchDate));此时MatchsListMap的排序规则是根据MatchDate降序的(默认),也就是说ma

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

	List<Matchs> matchsList = new ArrayList();
	
	Map<String,List<Matchs>> MatchsListMap=matchsList.stream()
	.collect(Collectors.groupingBy(Matchs::getMatchDate));	

此时MatchsListMap的排序规则是根据Hash值排序一般来讲认为是无序即可,那么如果需要根据MatchDate升/降序该怎么办呢?

答案是:


TreeMap<String, List<Matchs>> matchsListMap = matchsList.stream()
.collect(Collectors.groupingBy(Matchs::getMatchDate,TreeMap::new,Collectors.toList()));

此时返回的为TreeMap类型数据,TreeMap默认为按照key升序,matchsListMap.descendingMap()可以降序输出

2021年1月4日 19:53:19
补充另一种修改比较器的写法

List<Integer> resultList = IntStream.rangeClosed(1, 24).map(operand -> 0).boxed().collect(Collectors.toList());
        resultList.set(1,9);
        resultList.set(3,3);
        resultList.set(7,22);
        TreeMap<Integer, List<Integer>> collect = resultList.stream()
                .collect(Collectors.groupingBy(Function.identity(), () -> { 
   
                    Comparator<Integer> comparing = Comparator.comparing(Function.identity());
                    return new TreeMap<>(comparing.reversed());
                }, Collectors.toList()));
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171231.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • codeblocks怎么设置中文[通俗易懂]

    codeblocks怎么设置中文[通俗易懂]1下载语言包local2将语言包解压后放进新的位置codeblocks里面share的位置例如E:\新建文件夹\codeblocks\CodeBlocks\share\CodeBlocks然后进入codeblocks点击导航条的setting然后点击第二的大图标(视图)在里面选择长条框里选择中文就可以了。重启一下语言包的资源:https://pan.baidu.com/s/1SXYKt…

    2022年7月15日
    82
  • linux编辑文件命令vim怎么退出_vim退出命令

    linux编辑文件命令vim怎么退出_vim退出命令一、进入文件vim/etc/profile二、编辑文件按i进行编辑三、保存与退出1.首先按esc键返回命令编辑模式,刚才的Insert会消失2.按英文状态的:3.此时进行:q!不保存文件,强制退出vi命令:w保存文件,不退出vi命令:wq保存文件,退出vi命令4.输入以上命令按enter进行…

    2022年8月24日
    6
  • 2021idea激活码【2021免费激活】

    (2021idea激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    109
  • 2020年开始,中国程序员前景一片灰暗,是这样吗?[通俗易懂]

    2020年开始,中国程序员前景一片灰暗,是这样吗?[通俗易懂]背景:汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号【软件老王】,关注不迷路。1、感觉中国程序员前景一片灰暗,是这样吗?老王观点:(1)个人认为谈不上灰暗,过去十年是互联网快速爆发的十年,每个行业发展了一定程度,都会慢慢趋于平稳,软件行业也不例外。(2)其实最近也有这种感觉,感觉软件行业比以前难做了,随着政府推动的互联网+,软件行业已经进入各行各业,认为后面可能会像美国一样,成为一个基础行业,待遇和机会也会趋同于其他行业,但是不知道能不能像美国那样,到50多岁了还能写的上代码。(3

    2022年10月11日
    1
  • hdu 3642 Get The Treasury (三维的扫描线)[通俗易懂]

    hdu 3642 Get The Treasury (三维的扫描线)

    2022年2月1日
    37
  • Ubuntu10.04 下安装RabbitVCS

    Ubuntu10.04 下安装RabbitVCS安装RabbitVCS的方法步骤如下:1、sudoadd-apt-repositoryppa:rabbitvcs/ppa#将rabbitvcs的添加到源里面。(次操作会提示是否要添加到源里面,点击ENTER添加,ctrl+c不添加)2、sudoapt-keyadv–keyserverkeyserver.ubuntu.com–recv-keys34EF…

    2022年7月18日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号