Java ArrayList.subList() 方法及代码示例
从当前数组列表指定范围获取一个子列表
定义
public List<E> subList(int fromIndex, int toIndex)
参数
参数类型 | 参数名称 | 参数描述 |
---|---|---|
int | fromIndex | 起始索引 |
int | toIndex | 结束索引 |
类型参数 | E | 数组元素列表类型 |
返回值
返回列表中指定的 fromIndex (包括) 和 toIndex(不包括) 之间部分的列表.
如果fromIndex和toIndex相等,则返回的列表为空.
抛出的异常
IndexOutOfBoundsException
如果一个端点索引值超出范围(fromIndex < 0 || toIndex > size)
IllegalArgumentException
如果端点索引无序(fromIndex > toIndex)
说明
本方法由接口 List<E>
规定实现.
本方法重写了类 AbstractList<E>
中的 subList()
方法.
返回的列表受当前数组列表支持, 因此返回列表中的非结构化更改将会反映到当前数组列表中, 反之亦然. 返回的列表支持所有可选的列表操作.
示例
从数组列表中获取列表的示例
package com.yi21.arraylist; import java.util.ArrayList; import java.util.List; public class Yi21ArraysListSubList { public static void main(String[] args) { ArrayList<String> aList = new ArrayList<>(); aList.add("World"); aList.add("Hello"); aList.add("21yi"); aList.add("Java"); System.out.println("打印 list 的内容:"); List<String> list = aList.subList(1, 3); list.forEach(System.out::println); System.out.println("list 的变化将会反应到 aList 上."); list.clear(); aList.forEach(System.out::println); } }
执行结果为 :
打印 list 的内容: Hello 21yi list 的变化将会反应到 aList 上. World Java