首页 > 其他分享 >使用stream对集合进行排序

使用stream对集合进行排序

时间:2024-07-24 22:43:14浏览次数:10  
标签:collectResult stream Collectors TreeMap 集合 moduleList 排序

根据Hash值排序的,无序排序的

List<ModuleVo> moduleList=new ArrayList();
Map<Integer, List<ModuleVo>> collectResult = moduleList.stream().collect(Collectors.groupingBy(ModuleVo::getProjectId));

根据time进行升序排序,如下

TreeMap<Integer, List<ModuleVo>> collectResult  = moduleList.stream().collect(Collectors.groupingBy(ModuleVo::getTime,TreeMap::new,Collectors.toList()));

TreeMap默认按照key升序排序

TreeMap<Integer, List<ModuleVo>> collectResult  = moduleList.stream().collect(Collectors.groupingBy(ModuleVo::getTime,TreeMap::new,Collectors.toList())).descendingMap();

标签:collectResult,stream,Collectors,TreeMap,集合,moduleList,排序
From: https://www.cnblogs.com/byteexpress/p/18321930

相关文章

  • 《算法竞赛进阶指南》0x05排序
    在程序设计中通常会用到以下排序:1.选择排序、插入排序、冒泡排序2.堆排序、归并排序、快速排序3.计数排序、基数排序、桶排序前两类排序时基于比较的排序,第一类排序的时间复杂度为O(......
  • 七大基于比较的排序算法
    目录一、基于比较的排序算法概述1.插入排序(InsertionSort)2.选择排序(SelectionSort)3.冒泡排序(BubbleSort)4.归并排序(MergeSort)5.快速排序(QuickSort)6.堆排序(HeapSort)7.希尔排序(ShellSort)二、排序算法的性能分析三、Java中的常用排序方法 在计算机科......
  • C++ 插入排序
    【预告】        这几次将讲讲排序(从简单开始),废话不多说,直接切入正题【关于插入排序】【定义】    定义:插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入【时间复杂度】 ......
  • ava 集合框架全解析:Collection vs Collections,Comparable vs Comparator,HashSet 工作
    Java中的集合框架是开发过程中不可或缺的一部分,但初学者常常会混淆其中的术语,特别是Collection和Collections。这篇博客将详细介绍它们之间的区别,并进一步探讨Comparable和Comparator、HashSet的工作原理,以及HashMap和Hashtable的区别。Collection和Collecti......
  • 归并排序
    时间复杂度\(o(nlogn)\)空间复杂度\(o(n)\)模板:#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;intn;inta[N],b[N];//合并voidmerge(intleft,intright,intmid){ //标记左右半区第一个未排序的元素 intl_pos=left,r_pos=......
  • 数据结构(Java):Map集合&Set集合&哈希表
    目录1、介绍1.1 Map和Set1.2模型2、Map集合2.1Map集合说明2.2 Map.Entry<K,V>2.3Map常用方法2.4Map注意事项及实现类 3、Set集合3.1Set集合说明 3.2 Set常用方法 3.3Set注意事项及其实现类4、TreeMap&TreeSet4.1集合类TreeMap(Key-Value模型)4.1.1底......
  • [error] [default] Error sending telemetry FetchError: The pending stream has bee
    我在VSCode使用GithubCopilot时遇到了一个问题。报错信息如下:[error][default]ErrorsendingtelemetryFetchError:Thependingstreamhasbeencanceled(causedby:unabletoverifythefirstcertificate)具体信息:2024-07-2317:44:56.712[error][default]Erro......
  • 如何让 Mypy 认识到对两个整数进行排序会返回两个整数
    我的代码如下:fromtypingimportTuplea:Tuple[int,int]=tuple(sorted([1,3]))Mypy告诉我:赋值中的不兼容类型(表达式的类型为“Tuple[int,...]”,变量类型为“Tuple[int,int]”)我做错了什么?为什么Mypy无法弄清楚排序后的元组将返回两个整数?Mypy......
  • QListWidget实现内部拖动排序功能
    1.需求将QListWidget有很多的任务,需要拖动任务,手动进行排序,并且需要保存拖动之后的顺序,软件重新打开要是修改之后的顺序;(1)继承QListWidget,重写一个QListWidget自定义类#ifndefDROPLISTWIDGET_H#defineDROPLISTWIDGET_H#include<QListWidget>#include<QDropEvent>clas......
  • Java 集合框架:HashMap 的介绍、使用、原理与源码解析
    大家好,我是栗筝i,这篇文章是我的“栗筝i的Java技术栈”专栏的第020篇文章,在“栗筝i的Java技术栈”这个专栏中我会持续为大家更新Java技术相关全套技术栈内容。专栏的主要目标是已经有一定Java开发经验,并希望进一步完善自己对整个Java技术体系来充实自己的......