Stream操作之 先分组再取最大值

简介: Stream操作之 先分组再取最大值

按某个属性分组,并按另一个属性取最大

一个学生列表,来自多个班级,每个班级有若干名学生;取出每个班级中年龄最大的学生,形成一个新的列表;

return new ArrayList<>(studentList.stream()
   .collect(Collectors.toMap(Student::getClassId, Function.identity(),
      (c1, c2) -> c1.getAge() > c2.getAge() ? c1 : c2))
   .values());
  1. 首先转为Map,以班级ID为key,该班级中年龄最大的Student对象为value;
  2. 取出该Map的values;
  3. 塞到ArrayList中并返回;
目录
相关文章
|
3月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
38 0
|
存储 SQL Java
Java8 stream 中利用 groupingBy 进行多字段分组求和
Java8 stream 中利用 groupingBy 进行多字段分组求和
2394 0
|
3月前
使用lamba中stream 进行分组统计
使用lamba中stream 进行分组统计
|
2月前
|
Java BI Serverless
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
|
3月前
【stream】List根据某个字段求和
【stream】List根据某个字段求和
165 0
|
9月前
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
133 5
|
3月前
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
98 0
|
8月前
动态参数+reduce累加stream
动态参数+reduce累加stream
38 0
|
9月前
|
Java
stream流分组
stream流分组
75 0
|
Python
将列表按照指定的规则排序并添加平均值
将列表按照指定的规则排序并添加平均值
59 1