📜  如何在Java中获取 LinkedList 的子列表?(1)

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

如何在Java中获取 LinkedList 的子列表?

在Java中,我们可以通过使用LinkedList类来创建一个链表。LinkedList类提供了许多方法来操作链表,包括获取子列表,即从链表中提取一部分作为新的链表。

获取子列表的方法

我们可以使用LinkedList类的subList方法来获取链表的子列表。这个方法接受两个参数,即起始索引和结束索引(不包括结束索引),它会返回一个新的LinkedList对象,包含了原链表中从起始索引到结束索引之间的元素。

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(10);
linkedList.add(20);
linkedList.add(30);
linkedList.add(40);

LinkedList<Integer> subList = (LinkedList<Integer>) linkedList.subList(1, 3);

System.out.println("Original List: " + linkedList);
System.out.println("SubList: " + subList);

输出:

Original List: [10, 20, 30, 40]
SubList: [20, 30]

在这个例子中,我们创建了一个包含四个元素的LinkedList对象。我们使用subList方法从起始索引1到结束索引3之间获取了一个子列表。我们使用强制类型转换将返回的List对象转换为LinkedList对象,并打印出原始链表和子列表。

注意事项
  • 子列表与原链表共享存储空间。这意味着,如果我们修改子列表中的元素,那么原链表中对应的元素也会被修改。
  • 对于subList返回的子列表对象,它只是一个视图,不能执行像add、remove等修改结构的操作,否则将抛出java.util.ConcurrentModificationException异常。
总结

Java中的LinkedList类提供了一个方便的方法来获取链表的子列表。我们可以使用subList方法获取从起始索引到结束索引之间的元素。需要注意的是,子列表和原链表共享存储空间,修改子列表中的元素会同时修改原链表中的对应元素。同时,对于子列表对象,它只是原列表的一个视图,不能对它进行修改结构的操作。