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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何取消noarch.rpm包

    如何取消noarch.rpm包有一次部署zabbix服务器,不小心rpm-ivhzabbix的el7版本的rpm了,但是我的系统是centos6.5的,所以就尴尬了rpm-ivhhttp://repo.zabbix.co

    2022年8月1日
    6
  • 傅里叶变换与希尔伯特变换的区别_配音演员鱼冻毕业于什么学校

    傅里叶变换与希尔伯特变换的区别_配音演员鱼冻毕业于什么学校1.   傅里叶变换1.1傅里叶变换对周期信号进行傅里叶变换(包括正弦周期和非正弦周期信号,正弦周期实际上利用正交性可以知道,除了对应的频率,其他谐波的积分都是0),可以将信号分解为一个无穷级数的和:其中T为原周期信号的频率,因此,整个傅里叶变换将原信号分解为包括原周期在内的无数个谐波分量的三角集数和。对于非周期信号,实际上,非周期信号可以被理解为周期为无限短的周期信号,因此,级数和也自然变成了积…

    2022年10月19日
    3
  • oracle数据库的sql语句练习1

    oracle数据库的sql语句练习//1. 查询员工表所有数据select*fromemployees//2. 打印公司里所有的manager_idselectmanager_idfromemployees//3. 查询所员工的email全名,公司email统一以”@zpark.cn”结尾selectemail||‘@zpark.cn’asemailf…

    2022年4月8日
    67
  • pycharm设置项目编码「建议收藏」

    pycharm设置项目编码「建议收藏」pycharm设置项目编码1.pycharm-file-setting2.Editor-FileEncodings3.选择自己想要的编码4.点击确定

    2022年8月26日
    7
  • WritePrivateProfileString函数说明[通俗易懂]

    WritePrivateProfileString函数说明[通俗易懂]在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:   一.将信息写入.INI文件中.   .所用的WINAPI函数原型为: BOOLWritePrivateProfileString(   LPCTSTRlpAppName,   LPCTSTRlpKeyN

    2022年7月14日
    27
  • 微信定位精灵服务器或网络异常,微信定位精灵系统界面无法更新怎么办

    微信定位精灵服务器或网络异常,微信定位精灵系统界面无法更新怎么办我们在前几篇微博中讲到了如何开始使用微信定位精灵,点击这里传送门,如果需要序列号,可以参考这篇文章《微信定位精灵免费序列号赠送》而我们看到很多用户在使用的过程中遇到了一些这样或者那样的问题,在这里我们专门来解决一下这些问题。微信定位精灵地图界面不更新这是一个很多用户都会遇到的问题。根据我们这边的经验,但凡是遇到微信定位精灵地图界面不更新,无非是有这么几个原因:1、手机端当前无网络、或者信号不佳;2…

    2022年5月30日
    95

发表回复

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

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