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)
相关推荐
卤炖阑尾炎1 天前
基于 MySQL 主主复制 + HAProxy+Keepalived 构建高可用集群实战
数据库·mysql
Dxy12393102161 天前
MySQL 如何高效删除大量数据:策略与最佳实践
数据库·mysql·oracle
黑牛儿1 天前
MySQL 索引实战详解:从创建到优化,彻底解决查询慢问题
服务器·数据库·后端·mysql
想唱rap1 天前
线程池以及读写问题
服务器·数据库·c++·mysql·ubuntu
better_liang1 天前
每日Java面试场景题知识点之-MySQL索引
java·数据库·mysql·性能优化·索引
AgCl231 天前
MYSQL-4-DQL数据查询语言-3/14-15
数据库·mysql
别抢我的锅包肉1 天前
【MySQL】第五节 - 事务实战详解:从基础到并发控制(附 Navicat 可运行实验脚本)
数据库·mysql
殷紫川1 天前
避坑必看!MySQL 三大日志(redo/undo/binlog)底层原理全拆解,事务一致性再也不懵
mysql
AgCl231 天前
MYSQL-5-DCL数据查询语言-3/16
数据库·mysql
想唱rap1 天前
线程的同步与互斥
linux·运维·服务器·数据库·mysql