📜  Java中的 ArrayList subList() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:31:49.817000             🧑  作者: Mango

Java中的 ArrayList subList() 方法及示例

在Java中,ArrayList是一个动态数组,提供了很多方便的方法来操作元素。其中,subList()方法可以用来获取指定范围的子列表。

subList()方法

ArrayList的subList()方法的定义如下:

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

该方法返回一个列表,其中包含从fromIndex(含)到toIndex(不含)索引之间的元素。换句话说,该方法返回的是原列表的一个子列表。

需要注意的是,subList()方法返回的是原列表的一个视图,即它们共享相同的内部数据。因此,对子列表进行的任何修改都会反映在原列表中。

示例

下面我们通过一个示例来了解subList()方法的使用。

import java.util.ArrayList;
import java.util.List;

public class SubListExample {
    public static void main(String[] args) {
        // 创建一个包含10个元素的列表
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            list.add(i);
        }
        System.out.println("原列表:" + list);
        
        // 获取子列表
        List<Integer> sublist = list.subList(3, 7);
        System.out.println("子列表:" + sublist);
        
        // 修改子列表
        for (int i = 0; i < sublist.size(); i++) {
            sublist.set(i, sublist.get(i) * 10);
        }
        System.out.println("修改后的子列表:" + sublist);
        System.out.println("修改后的原列表:" + list);
    }
}

输出结果如下:

原列表:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
子列表:[4, 5, 6, 7]
修改后的子列表:[40, 50, 60, 70]
修改后的原列表:[1, 2, 3, 40, 50, 60, 70, 8, 9, 10]

上述示例创建了一个包含10个元素的列表,然后获取其中从索引3(含)到索引7(不含)的子列表,并对子列表进行了修改。可以看到,修改子列表同样会影响原列表中对应的元素。

总结

subList()方法可以方便地获取ArrayList中指定范围的子列表,并且对子列表的操作会反映在原列表中。但需要注意的是,子列表是原列表的一个视图,因此修改子列表可能会导致ConcurrentModificationException异常的抛出。