案例分析-Stream List 中取出值最大的前 5 个和最小的 5 个值

ops/2024/9/23 18:22:15/

List<Aaa> 中取出 value 最大的前 5 个和最小的 5 个值

要从 List<Aaa> 中取出 value 最大的前 5 个和最小的 5 个值,我们可以使用 Java 8 的流(Stream)API 来实现。

代码示例:

import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;class Aaa {private BigDecimal value;public Aaa(BigDecimal value) {this.value = value;}public BigDecimal getValue() {return value;}@Overridepublic String toString() {return "Aaa{" + "value=" + value + '}';}
}public class Main {public static void main(String[] args) {// 创建一个测试列表List<Aaa> list = Arrays.asList(new Aaa(new BigDecimal("10")),new Aaa(new BigDecimal("20")),new Aaa(new BigDecimal("5")),new Aaa(new BigDecimal("15")),new Aaa(new BigDecimal("25")),new Aaa(new BigDecimal("2")),new Aaa(new BigDecimal("30")),new Aaa(new BigDecimal("12")),new Aaa(new BigDecimal("50")),new Aaa(new BigDecimal("3")));// 取出前5个最大的List<Aaa> top5Max = list.stream().sorted(Comparator.comparing(Aaa::getValue).reversed()) // 按 value 降序排列.limit(5) // 取前 5 个.collect(Collectors.toList());// 取出前5个最小的List<Aaa> top5Min = list.stream().sorted(Comparator.comparing(Aaa::getValue)) // 按 value 升序排列.limit(5) // 取前 5 个.collect(Collectors.toList());// 打印结果System.out.println("最大前5个: " + top5Max);System.out.println("最小前5个: " + top5Min);}
}

代码解释:

  1. 排序并取前5个最大值

    • 使用 stream() 创建流。
    • 使用 Comparator.comparing(Aaa::getValue).reversed()value 值按降序排序。
    • 使用 limit(5) 限制结果为前 5 个。
    • 使用 collect(Collectors.toList()) 将结果转换为列表。
  2. 排序并取前5个最小值

    • 使用 Comparator.comparing(Aaa::getValue) 按升序排列。
    • limit(5) 限制结果为前 5 个。

输出示例:

最大前5个: [Aaa{value=50}, Aaa{value=30}, Aaa{value=25}, Aaa{value=20}, Aaa{value=15}]
最小前5个: [Aaa{value=2}, Aaa{value=3}, Aaa{value=5}, Aaa{value=10}, Aaa{value=12}]

这段代码可以根据 Aaa 对象的 value 属性,提取出最大和最小的前 5 个值。


http://www.ppmy.cn/ops/114897.html

相关文章

Oracle DB运维常用的视图及数据字典

List item 本文介绍一些Oracle DB日常运维最常用到&#xff08;使用频率很高&#xff09;的视图及数据字典 用户有关的常用视图&#xff1a; 1、 查看当前用户的缺省表空间* SQL>select username,default_tablespace from user_users; 2、 查看当前用户的角色 SQL>sele…

深入理解音视频pts,dts,time_base以及时间数学公式

引入 首先介绍一下基础名词 DTS&#xff08;Decoding Time Stamp&#xff09;&#xff1a;即解码时间戳&#xff0c;这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。当数据没b帧时&#xff0c;dts pts&#xff0c;有兴趣可参阅我前面视频知识类文章。 PTS&a…

IOS 24 实现歌单详情(UITableView)列表

歌单详情完整效果 歌单详情歌单列表效果 歌单详情列表页整体效果稍微有点复杂&#xff0c;我们进行分部实现&#xff0c;先实现歌单详情里面的歌单列表&#xff0c;使用UITableView来实现。UITableView的使用在之前的文章中多次使用&#xff0c;想来也比较熟悉了。不熟悉的可以…

Elasticsearch:一次生产集群 ES Watcher 失效的深度排查与分析 - 全过程剖析与解决方案

作者&#xff1a;尚雷&#xff0c;TechTalk 技术交流社区创办者 一次生产集群 ES Watcher 失效的深度排查与分析 全过程剖析与解决方案​​ 一、Elasticsearch Watcher 介绍 1.1 Watcher 概念概述 Watcher 是 Elasticsearch 提供的一项监控和告警服务&#xff0c;允许用户定义…

北京市朝阳区自闭症寄宿学校:为孩子提供优质照顾与学习环境

北京市朝阳区自闭症寄宿学校的愿景与广州星贝育园的卓越实践 在北京市朝阳区&#xff0c;乃至全国范围内&#xff0c;自闭症儿童的教育与照护一直是社会各界关注的焦点。家长们渴望为孩子找到一所能够提供优质照顾与学习环境的学校&#xff0c;让他们在爱与专业的滋养下茁壮成…

在excel中使用python?

是的&#xff01;excel中可以使用python了&#xff01; 在去年8月22日&#xff0c;微软通过官方博客发布将与anaconda展开合作&#xff0c;简而言之就是excel将支持python&#xff0c;可以在表格中直接利用python就行数据分析&#xff0c;可以在表格中直接运行python了。 如何…

浅谈C#之SynchronizationContext

一、基本介绍 SynchronizationContext是一个抽象类&#xff0c;它提供了一种机制&#xff0c;允许代码与创建它的线程同步。这在UI编程中非常有用&#xff0c;比如在Windows Forms或WPF应用程序中&#xff0c;你可能需要确保某些操作在UI线程上执行&#xff0c;以避免跨线程操作…

深度学习02-pytorch-03-张量的数值计算

张量&#xff08;Tensor&#xff09;是多维数组的通用化概念&#xff0c;它可以表示标量&#xff08;0维&#xff09;、向量&#xff08;1维&#xff09;、矩阵&#xff08;2维&#xff09;以及更高维度的数据。在深度学习和数值计算中&#xff0c;张量是基础数据结构&#xff…