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中并返回;
目录
相关文章
|
6月前
有汇源上下界最大流和最小流
有汇源上下界最大流和最小流
29 0
|
6月前
JDK8之stream流的使用:分组
JDK8之stream流的使用:分组
285 0
|
存储 SQL Java
Java8 stream 中利用 groupingBy 进行多字段分组求和
Java8 stream 中利用 groupingBy 进行多字段分组求和
2520 0
|
6月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
60 0
|
6月前
使用lamba中stream 进行分组统计
使用lamba中stream 进行分组统计
|
5月前
|
Java BI Serverless
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
Java8 Stream深度解析:30个案例3万字助你精通集合筛选、归约、分组与聚合操作
|
5月前
Stream之判断(anyMatch allMatch noneMatch)
Stream之判断(anyMatch allMatch noneMatch)
|
6月前
【stream】List根据某个字段求和
【stream】List根据某个字段求和
337 0
|
12月前
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
167 5
|
6月前
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
121 0