ArrayList 的内部类 SubList
时间: 2023-08-20 08:06:19 浏览: 46
ArrayList 的内部类 SubList 是 ArrayList 的一个视图类,它表示了原始 ArrayList 的一个子列表。SubList 是通过调用 ArrayList 的 subList 方法创建的。
SubList 继承自 AbstractList,并实现了 RandomAccess 接口,因此它支持高效的随机访问。
SubList 与原始 ArrayList 共享相同的数据存储空间,对 SubList 的修改会反映在原始 ArrayList 上,反之亦然。这意味着通过 SubList 修改元素会影响到原始 ArrayList,而通过原始 ArrayList 修改元素也会影响到 SubList。
需要注意的是,对原始 ArrayList 的结构性修改(例如添加或删除元素)会导致 SubList 失效,即对 SubList 的操作可能会抛出 ConcurrentModificationException 异常。因此,在对 SubList 进行操作之前,最好先确保原始 ArrayList 的结构不会被修改。
以下是 SubList 的一些常用方法:
- get(int index):获取指定索引处的元素。
- set(int index, E element):将指定索引处的元素替换为指定元素。
- add(E element):将指定元素添加到 SubList 的末尾。
- remove(int index):移除指定索引处的元素。
- subList(int fromIndex, int toIndex):返回从 fromIndex(包含)到 toIndex(不包含)的子列表。
需要注意的是,SubList 的索引范围是相对于原始 ArrayList 的索引范围,而不是相对于 SubList 本身的索引范围。