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

📅  最后修改于: 2023-12-03 14:42:43.384000             🧑  作者: Mango

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

在 Java 中,AbstractList是一个抽象类,它实现了 List 接口。AbstractList 提供了许多便利的操作元素的方法,其中之一就是 subList() 操作,它可以返回一个部分列表,将原列表截取出一部分。

subList() 方法的声明
public List<E> subList(int fromIndex, int toIndex) {
    // ...
}
参数说明
  • fromIndex: 开始位置(包含)
  • toIndex: 结束位置(不包含)
返回值

返回一个具有指定范围的列表视图

示例
import java.util.*;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> myList = new ArrayList<String>();
    myList.add("A");
    myList.add("B");
    myList.add("C");
    myList.add("D");
    myList.add("E");
    myList.add("F");

    // 返回从 2(包含)到 5(不包含)的子列表
    List<String> subList = myList.subList(2, 5);

    System.out.println("原列表: " + myList);
    System.out.println("子列表: " + subList);

    // 在子列表中添加一个元素
    subList.add("G");

    System.out.println("原列表: " + myList);
    System.out.println("子列表: " + subList);

    // 在原列表中添加一个元素
    myList.add("H");

    System.out.println("原列表: " + myList);
    System.out.println("子列表: " + subList);
  }
}

运行结果:

原列表: [A, B, C, D, E, F]
子列表: [C, D, E]
原列表: [A, B, C, D, E, F, G]
子列表: [C, D, E, G]
原列表: [A, B, C, D, E, F, G, H]
子列表: [C, D, E, G]

在上面的示例中,我们新建了一个 ArrayList,并向其中添加了一些元素。然后我们使用 subList() 方法从原列表中截取了一部分,并对子列表进行了一些操作,包括向其中添加元素和删除元素。

需要注意的是,对子列表的操作会同时改变原列表。也就是说,当我们对子列表中的元素进行操作时,会同时对原列表进行同样的操作。

再次强调:subList() 方法返回的是原列表的子列表,它们是共享一段数组的,因此对子列表的操作同样会影响到原列表。如果你将子列表中的元素全部删除了,那么原列表也将为空。因此,当你使用 subList() 时需要非常慎重,避免对原列表造成不良影响。