Java中的List sublist()方法及示例

Java中的List sublist()方法及示例

在Java的集合框架中,List是一种非常常见的数据结构。它可以容纳多个对象,并且允许对象重复。List提供了许多有用的方法,使我们可以轻松地操作它们。其中,subList()方法就是其中之一。

List sublist()方法介绍

subList()方法是List接口中提供的一个方法,用于从一个列表中提取一个子列表。其方法签名如下:

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

其中,fromIndex和toIndex为子列表的开始和结束索引。这两个参数都是包含边界的,即子列表的范围是[fromIndex, toIndex)。

List sublist()方法示例

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

示例1:提取子列表

在这个示例中,我们定义一个包含10个元素的列表,并从它中提取一个子列表。

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

public class SubListDemo {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        list.add("g");
        list.add("h");
        list.add("i");
        list.add("j");

        List<String> subList = list.subList(2, 6);
        System.out.println("Original List: " + list);
        System.out.println("Sub List: " + subList);
    }
}

代码运行结果如下:

Original List: [a, b, c, d, e, f, g, h, i, j]
Sub List: [c, d, e, f]

在这个示例中,我们从列表的索引2(即第三个元素)开始提取子列表,一直到索引6(即第七个元素)结束。原始列表不受影响,而子列表包含从原始列表中所选的元素。

示例2:修改子列表

在这个示例中,我们使用subList()方法修改列表中的元素。

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

public class SubListDemo {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        list.add("g");
        list.add("h");
        list.add("i");
        list.add("j");

        List<String> subList = list.subList(2, 6);
        subList.set(1, "x");
        System.out.println("Original List: " + list);
        System.out.println("Sub List: " + subList);
    }
}

代码运行结果如下:

Original List: [a, b, c, x, e, f, g, h, i, j]
Sub List: [c, x, e, f]

在这个示例中,我们从列表的索引2开始提取子列表,并将它的第二个元素修改为”x”。原始列表和子列表都被修改了,因为它们指向同一组对象。

示例3:删除子列表

在这个示例中,我们使用subList()方法删除列表中的元素。

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

public class SubListDemo {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        list.add("g");
        list.add("h");
        list.add("i");
        list.add("j");

        List<String> subList = list.subList(2, 6);
        subList.clear();
        System.out.println("Original List: " + list);
        System.out.println("Sub List: " + subList);
    }
}

代码运行结果如下:

Original List: [a, b, g, h, i, j]
Sub List: []

在这个示例中,我们从列表的索引2开始提取子列表,并将它的所有元素删除。原始列表和子列表都被修改了,因为它们指向同一组对象。

注意事项

在使用subList()方法时,需要注意以下事项:

  1. 子列表的操作会反映到原列表上。也就是说,对子列表所做的所有更改都会反映在原列表上,反之亦然。
  2. 返回的子列表是原始列表的一部分,并且对该子列表的操作将反映在原始列表上。因此,在修改原始列表之前或之后,不要修改子列表。
  3. 子列表是使用原始列表的相同引用创建的。因此,如果尝试对原始列表进行结构性更改(添加或删除元素),则子列表将抛出ConcurrentModificationException异常。

结论

在本文中,我们学习了Java中List接口的subList()方法及其使用示例。我们了解了这个方法的用途和工作原理,并通过一些代码示例来加深我们的理解。在使用subList()方法时,请记住我们提到的注意事项,以避免问题并获得最佳效果。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程