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)
上一篇 2022年8月20日 下午5:00
下一篇 2022年8月20日 下午5:00


相关推荐

  • SQL语句存储过程实例详解(面试宝典)「建议收藏」

    SQL语句存储过程实例详解(面试宝典)「建议收藏」本文用3个题目,从建立数据库到创建存储过程,详细讲解数据库的功能。这个问题面试的时候也是经常会用到的,比如写sql语句。题目1学校图书馆借书信息管理系统建立三个表:学生信息表:student字段名称数据类型说明stuIDchar(10)学生编号,主键stuName

    2022年10月5日
    6
  • React 路由—基本使用「建议收藏」

    React 路由—基本使用「建议收藏」一:安装运行npmireact-router-dom安装react路由依赖项创建一个App.js根组件,并在根组件中,按需导入路由需要的三个组件HashRouter:表示路由的包裹

    2022年8月2日
    11
  • Python天天美味(13) – struct.unpack

    Python天天美味(13) – struct.unpack

    2022年2月23日
    65
  • Influx windows版安装

    Influx windows版安装Influxwindow 版安装

    2026年3月18日
    2
  • js实现数组浅拷贝和深拷贝

    js实现数组浅拷贝和深拷贝JavaScript 实现数组的深拷贝 浅拷贝 vararr old 1 true null undefined varnew arr arr concat 或者 varnew arr arr slice 也是一样的效果 new arr 0 new console log arr ol

    2026年3月17日
    1
  • ryu实例—ECMP的rr(轮询)算法实现

    ryu实例—ECMP的rr(轮询)算法实现最近 做到一个实验 需要每隔一段时间 就改变数据的传输路径 如下图所示 主机之间的数据传输需要经过 s1 和 s2 两个交换机 交换机之间的链路有两条 实验是在这两条链路之间每隔 10 秒切换一次 也就是相当于 ECMP 的轮询算法 当然 若想以流为单位切换链路 比如说 上一个流经链路 1 下一条流经链路 2 这种方式的轮询利用集线器的程序改变一下就可以实现 轮询 即各个流在多条路径之间轮询传输 拓扑的端口对应关系 接下来 重点说明程序如何写 不再赘述一些关于拓扑构建和轮询的一些概念 一 程序 SDN 架

    2026年3月18日
    2

发表回复

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

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