You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何使用ArrayList的subList方法获取包含最后一个元素的子列表

Java ArrayList截取从指定下标到末尾元素的正确实现

错误写法原因说明

  • 第一种写法触发下标越界的核心原因是subList方法的第二个参数必须小于等于列表总长度list.size(),你传入的index + list.size()远超过合法取值范围,因此抛出IndexOutOfBoundsException
  • 第二种写法编译不通过的原因是Java原生List接口的subList方法不存在单参数重载,必须传入起始下标(包含)、结束下标(不包含)两个参数

正确实现方式

如果需要截取从startIndex开始、包含原列表最后一个元素的子列表,直接将第二个参数设置为list.size()即可:

// 返回的子列表包含startIndex位置元素,到原列表最后一个元素为止
List<T> subList = list.subList(startIndex, list.size());

注意事项

subList方法返回的是原列表的视图,不是独立的新列表,修改原列表或者子列表的内容会互相影响。如果需要得到独立的新ArrayList实例,可按如下写法转换:

ArrayList<T> independentSubList = new ArrayList<>(list.subList(startIndex, list.size()));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:45:02