文
章
目
录
章
目
录
学习如何从现有 ArrayList 中获取子列表。我们将使用 ArrayList.subList()
方法来获取数组列表对象的子列表。
1.ArrayList subList() API
subList()
方法返回位于指定的 fromIndex
(包括)和 toIndex
(不包括)之间的此列表的部分视图。
public List<E> subList(int fromIndex, int toIndex)
该方法的参数为:
fromIndex
:现有数组列表中的起始索引,包括在内。toIndex
:现有数组列表中的最后一个索引,不包括在内。
请注意,对子列表中对象所做的任何更改也将反映在原始数组列表上。
2.指定索引之间的子列表
下面的 Java 程序从现有子列表获取一个子列表。我们正在获取从索引 2 到 6 的子列表。
请注意,数组列表的索引从 0 开始。
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(0,1,2,3,4,5,6,7,8,9));
ArrayList<Integer> sublist = list.subList(2, 6);
System.out.println(sublist); // [2, 3, 4, 5]
3.从指定索引到列表末尾的子列表
如果我们想要从指定索引到列表末尾获取一个子列表,那么在方法的第二个参数中传递数组列表的长度。
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(0,1,2,3,4,5,6,7,8,9));
System.out.println(list.subList(2, list.size())); // [2, 3, 4, 5, 6, 7, 8, 9]
4.从原始列表中删除子列表
当我们有数组列表的子列表视图时,我们也可以使用这个子列表来从数组列表中删除多个项,因为更改会反映在两个列表中。
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(0,1,2,3,4,5,6,7,8,9));
list.subList(2, 6).clear();
System.out.println(list); // [0, 1, 6, 7, 8, 9]