Java ArrayList.subList() 方法及代码示例

从当前数组列表指定范围获取一个子列表

定义

public List<E> subList​(int fromIndex, int toIndex)

参数

参数类型参数名称参数描述
intfromIndex起始索引
inttoIndex结束索引
类型参数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