You need to enable JavaScript to run this app. 如何获取ArrayList前N个元素中的最大值?
优惠活动
大模型
产品
解决方案
定价
更多

如何获取ArrayList前N个元素中的最大值?

取ArrayList前3个元素最大值的实现方式
  • ArrayList自带的subList方法完全可以实现这个需求,不需要额外编写循环比较的冗余逻辑
  • subList的截取规则:接收两个整数参数,第一个是截取区间的起始索引(会被包含在结果中),第二个是截取区间的结束索引(不会被包含在结果中)

针对存储了10、20、30、40、50的整数ArrayList,计算前3个元素最大值的完整代码如下:

// 截取从索引0到索引3的区间,对应原集合索引0、1、2位置的前3个元素
List<Integer> firstThreePart = arrayList.subList(0, 3);
// 复用你已经掌握的Collections.max方法计算子列表的最大值
int maxOfFirstThree = Collections.max(firstThreePart);

按照示例数据,上述代码运行得到的结果就是30,和预期完全一致。

相关注意事项

  • subList返回的是原集合的动态视图,并非独立拷贝的新列表,仅用来读取计算最大值时不会产生额外内存开销,也不会修改原集合内容
  • 实际使用时需要做边界兼容:如果原集合元素总数不足3个,直接传入结束索引3会触发索引越界异常,此时可以将结束索引替换为Math.min(arrayList.size(), 3)规避报错
  • 如果不使用subList,也可以手动循环遍历前3个元素记录最大值,但这种写法代码量更长,复用性远不如基于subList配合Collections.max的实现,完全没必要重复造轮子

内容的提问来源于stack exchange,提问作者Ron Mercer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.06 22:24:04