首页  >  文章  >  Java  >  使用java的ArrayList.subList()函数获取ArrayList指定范围的子列表

使用java的ArrayList.subList()函数获取ArrayList指定范围的子列表

PHPz
PHPz原创
2023-07-24 11:17:121697浏览

使用java的ArrayList.subList()函数获取ArrayList指定范围的子列表

在Java编程中,ArrayList是一个非常常用的数据结构,它可以用来存储一组数据,并且可以动态添加或删除元素。有时候,我们需要获取ArrayList中的部分元素,可以使用subList()函数来实现。

subList()函数的定义如下:

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

其中,fromIndex表示子列表的起始索引(包含),toIndex表示子列表的结束索引(不包含)。通过调用这个函数,我们可以获得从fromIndextoIndex-1的子列表。返回的子列表是一个新的List实例,它仍然指向原来的ArrayList,并且对子列表的修改会反映到原来的ArrayList上。

下面是一个对ArrayList进行子列表操作的示例代码:

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

public class ArrayListExample {

    public static void main(String[] args) {
        // 创建一个包含整数的ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);
        
        // 获取ArrayList的子列表
        List<Integer> subList = numbers.subList(1, 4);
        
        System.out.println("原始ArrayList中的元素:");
        for (Integer num : numbers) {
            System.out.print(num + " ");
        }
        System.out.println();
        
        System.out.println("子列表中的元素:");
        for (Integer num : subList) {
            System.out.print(num + " ");
        }
        System.out.println();
        
        // 修改子列表中的元素
        subList.set(0, 10);
        subList.set(1, 20);
        
        System.out.println("修改过后的原始ArrayList中的元素:");
        for (Integer num : numbers) {
            System.out.print(num + " ");
        }
        System.out.println();
    }
}

运行上述代码,输出结果为:

原始ArrayList中的元素:
1 2 3 4 5 
子列表中的元素:
2 3 4 
修改过后的原始ArrayList中的元素:
1 10 20 4 5 

从运行结果可以看出,通过subList()函数获取的子列表对原始ArrayList是有影响的。当我们修改子列表中的元素时,原始ArrayList中对应的元素也会被修改。

需要注意的是,subList()返回的子列表不能进行增加或删除操作,否则会抛出UnsupportedOperationException异常。

致使ArrayList.subList()函数的使用使得对ArrayList的数据按照一定范围进行了精确取值,方便进行后续操作。在使用时需要注意索引的范围及其对原始ArrayList的影响,以便正确地获取、修改和处理子列表中的元素。

以上是使用java的ArrayList.subList()函数获取ArrayList指定范围的子列表的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn