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)
相关推荐
岁岁岁平安5 分钟前
mysql上课总结(2)(DCL的所有操作总结、命令行快速启动/关闭mysql服务)
数据库·mysql·命令行·权限·dcl·localhost
Boboboobo5 分钟前
记MySQL下一次DEPENDENT SUBQUERY的优化
数据库·sql·mysql·性能优化
隐居的遮天恶鬼1 小时前
Mac OS 搭建MySQL开发环境
数据库·mysql·mac
abandondyy3 小时前
MySQL---主从复制和读写分离
数据库·mysql
DEARM LINER4 小时前
mysql 巧妙的索引
数据库·spring boot·后端·mysql
不惑_5 小时前
Redis与MySQL双写一致性的缓存模式
redis·mysql·缓存
伏虎山真人7 小时前
开源数据库 - mysql - 组织结构(与oracle的区别)
数据库·mysql·开源
岁岁岁平安12 小时前
mysql上课总结(1)(mysql中的常见的存储引擎)(面试)
数据库·mysql·innodb·存储引擎
昨天今天明天好多天14 小时前
【Linux】MySQL部署
linux·mysql·adb
我还能再卷一点14 小时前
Linux安装mysql【超详细】
linux·mysql·adb