java 获取最高20%数据

有两个问题:

  • 假如是空列表或者数据量过小,那么使用get方法会抛出数组越界

    list = new ArrayList();
    list.get(list.size() / 4) // 可能出现 get(0)越界

解决

使用stream().limit()方法。

复制代码
 List<Double> sortPoint = new ArrayList();
sortPoint.stream().sort(<实现一个比较器>).limit(sortPoint.size() / 5).toList();
collect.isEmpty() ? 0 : collect.get(collect.size() - 1);

第二种:

复制代码
list.size() / 4 >= list.size() ? 0: list.get(list.size() / 4)
相关推荐
卿雪2 小时前
Redis 线程模型:Redis为什么这么快?Redis为什么引入多线程?
java·数据库·redis·sql·mysql·缓存·golang
梁萌2 小时前
MySQL中innerDB引擎的锁机制
数据库·mysql·索引·表锁·行锁
Chloeis Syntax2 小时前
MySQL初阶学习日记(4)--- 插入、聚合、分组查询 + 数据库约束
数据库·笔记·学习·mysql
西岭千秋雪_2 小时前
MySQL集群搭建
java·数据库·分布式·mysql
古城小栈2 小时前
MySQL 配置优化 绿皮书
数据库·mysql
箬敏伊儿4 小时前
Apple M2 + Docker + MySQL 轻量配置全教程
数据库·mysql·docker
FserSuN4 小时前
mysql8 loose index skip scan 特性加速分组查询性能
数据库·mysql
tebukaopu1484 小时前
mysql distinct慢
数据库·mysql
l1t5 小时前
利用Duckdb求解Advent of Code 2025第5题 自助餐厅
数据库·sql·mysql·算法·oracle·duckdb·advent of code
豐儀麟阁贵6 小时前
9.6使用正则表达式
java·开发语言·数据库·mysql