首页 > 编程语言 >java8 分组排序

java8 分组排序

时间:2023-03-06 20:22:05浏览次数:46  
标签:Collectors stream list 分组 Student 排序 java8

//先根据姓名分组再根据分数排序
Map<String, List<Student>> map1 = listAll.stream().collect(
   Collectors.groupingBy(Student::getName, HashMap::new,
     Collectors.collectingAndThen(Collectors.toList(),
     //正序
     list -> list.stream().sorted(Comparator.comparing(Student::getScore))
     //倒序
     //list -> list.stream().sorted(Comparator.comparing(Student::getScore).reversed())
      .collect(Collectors.toList())
)));

 

标签:Collectors,stream,list,分组,Student,排序,java8
From: https://www.cnblogs.com/wj123bk/p/17185268.html

相关文章

  • 【NOI2018】冒泡排序
    【NOI2018】冒泡排序Description最近,小S对冒泡排序产生了浓厚的兴趣。为了问题简单,小S只研究对\(1\)到\(n\)的排列的冒泡排序。下面是对冒泡排序的算法描述。......
  • sort.Sort对结构体切片进行排序(接口实现了sort.Sort里面接口的方法), sort.Ints 对
    packagemainimport( "fmt" "math/rand" "sort")//1.声明Hero结构体typeHerostruct{ Namestring Ageint}//2.声明一个Hero结构体切片类型typeHer......
  • 剑指 Offer25. 合并两个排序的链表
    题目描述   解法一迭代思路:当l1和l2都不是空链表时,判断l1和l2哪一个链表的头节点的值更小,将较小值的节点添加到结果里,当一个节点被添加到结果里之后,将......
  • 今日学习之二分法排序
    二分法排序主要思想是在数组中截取一个数center,然后将数组分成leftArr、rightArr两部分,其中leftArr全部小于center,rightArr全部大于center(这里没有考虑有重复值的情况),最后......
  • 字符串排序III【北京大学考研机试题】
    字符串排序III按要求输入字符串进行排序并输出。输入格式输入包含多组测试数据。每组测试数据,第一行包含整数N,表示共有N个字符串。接下来,会将这N个字符串,按一行......
  • 字符串排序【北京大学考研机试题】
    字符串排序输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果。输入格式一行,一个字符串。输出格式一行,排序后......
  • 十大排序
    (平均/最好/最坏)时间复杂度、空间复杂度、稳定性注意:main方法测试调用统一提取出来,按照需求自己打开/关闭注释去调用publicstaticvoidmain(String[]args){......
  • 冒泡排序
    冒泡排序对N个数据进行排序,共进行N-1轮排序,每一轮都从第一个数据向后面比较(假如从小向大排列),若前面的数据大于后面的数据,则交换位置,再让第二个数据与第三个比较,以此类推......
  • 【基数排序算法详解】Java/Go/Python/JS/C不同语言实现
    说明基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的......
  • 二维数组的一般使用,以及二维数组的二维排序
    #include<iostream>#include<vector>#include<algorithm>usingnamespacestd;vector<vector<int>>a(6);//boolcmp(vector<int>&a,vector<int>&b){//if(a[0]!=b......