Java中的ArrayList subList()方法示例

Java中的ArrayList subList()方法示例

Java中的ArrayList类提供了许多有用的方法,其中一个非常有用的方法是subList()方法。这个方法可以很方便的获取ArrayList中的子列表,也就是从ArrayList中截取一部分元素组成一个新的列表。这个方法经常用于分割一个大的列表或者在列表中找到某一部分元素。

subList()方法的语法如下:

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

其中,fromIndex表示子列表的起始位置(包含),toIndex表示子列表的终止位置(不包含),返回值是一个新的列表,包含原列表中从fromIndex到toIndex之间的元素。

接下来,我们来看一些具体的使用示例。

示例1:获取子列表

import java.util.ArrayList;
import java.util.List;
public class SubListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList对象
        List<String> list = new ArrayList<String>();

        // 添加一些元素
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");

        // 获取子列表
        List<String> subList = list.subList(2, 4);

        // 输出子列表
        System.out.println("SubList of ArrayList: "+subList);
    }
}

输出结果为:

SubList of ArrayList: [C, D]

在这个示例中,我们创建了一个ArrayList对象,并向其中添加了5个元素。接着,我们使用subList()方法获取列表中从索引位置2(包含)到索引位置4(不包含)的子列表,并将其存储在subList变量中。最后,我们打印出子列表的内容。

示例2:修改子列表会影响原列表

需要注意的是,修改子列表会对原列表产生影响。这就是说,如果我们在子列表中添加、修改或删除元素,原列表也会相应地发生变化。

import java.util.ArrayList;
import java.util.List;
public class SubListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList对象
        List<String> list = new ArrayList<String>();

        // 添加一些元素
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");

        // 获取子列表
        List<String> subList = list.subList(2, 4);

        // 修改子列表
        subList.set(1, "F");

        // 输出原列表
        System.out.println("Original ArrayList: "+list);

        // 输出子列表
        System.out.println("SubList of ArrayList: "+subList);
    }
}

输出结果为:

Original ArrayList: [A, B, C, F, E]
SubList of ArrayList: [C, F]

在这个示例中,我们首先创建了一个ArrayList对象,并向其中添加了5个元素。接着,我们使用subList()方法获取列表中从索引位置2(包含)到索引位置4(不包含)的子列表,并将其存储在subList变量中。接下来,我们修改子列表中的一个元素。最后,我们打印出原列表和子列表的内容。

可以看到,因为我们修改了子列表,原列表也随之发生了变化。

示例3:使用subList()方法和for-each循环遍历列表

import java.util.ArrayList;
import java.util.List;
public class SubListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList对象
        List<String> list = new ArrayList<String>();

        // 添加一些元素
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");

        // 获取子列表
        List<String> subList = list.subList(2, 4);

        // 使用for-each循环遍历子列表
        for(String s : subList){
            System.out.println(s);
        }
    }
}

输出结果为:

C
D

在这个示例中,我们首先创建了一个ArrayList对象,并向其中添加了5个元素。接着,我们使用subList()方法获取列表中从索引位置2(包含)到索引位置4(不包含)的子列表,并将其存储在subList变量中。最后,我们使用for-each循环遍历子列表,并打印出每个元素的值。

示例4:使用subList()方法查找特定元素

import java.util.ArrayList;
import java.util.List;
public class SubListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList对象
        List<String> list = new ArrayList<String>();

        // 添加一些元素
        list.add("A");
        list.add("B");
        list.add("C");
        list.add("D");
        list.add("E");

        // 查找元素"D"在列表中的位置
        int index = list.subList(2, list.size()-1).indexOf("D");

        // 输出元素"D"在列表中的位置
        System.out.println("Index of 'D': "+index);
    }
}

输出结果为:

Index of 'D': 1

在这个示例中,我们首先创建了一个ArrayList对象,并向其中添加了5个元素。接着,我们使用subList()方法获取列表中从索引位置2(包含)到列表末尾(不包含)的子列表,并使用indexOf()方法查找元素”D”在子列表中的位置。最后,我们打印出搜索结果。

需要注意的是,在使用indexOf()方法查找元素时,应该使用子列表的索引位置作为起点,而不是原列表的索引位置。因为子列表是从原列表中截取出来的,其索引位置是相对于子列表的,而不是相对于原列表的。

结论

通过本篇文章的学习,我们了解了如何在Java中使用ArrayList的subList()方法来获取子列表、修改子列表、遍历子列表、查找特定元素等操作。subList()方法可以帮助我们快速的操作列表中的子集,提高开发效率,是Java中列表操作的重要方法之一。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程