subList

public List < E > subList( int fromIndex,
                      
int toIndex)返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。(如果 fromIndex 和 toIndex 相等,则返回的列表为空)。返回的列表由此列表支持,因此返回列表中的非结构性更改将反映在此列表中,反之亦然。返回的列表支持此列表支持的所有可选列表操作。
此方法省去了显式范围操作(此操作通常针对数组存在)。通过传递 subList 视图而非整个列表,期望列表的任何操作可用作范围操作。例如,下面的语句从列表中移除了元素的范围:

            list.subList(from, to).clear();
可以对 indexOf 和 lastIndexOf 构造类似的语句,而且 Collections 类中的所有算法都可以应用于 subList。
如果支持列表(即此列表)通过任何其他方式(而不是通过返回的列表)从结构上修改,则此方法返回的列表语义将变为未定义(从结构上修改是指更改列表的大小,或者以其他方式打乱列表,使正在进行的迭代产生错误的结果)。

此实现返回一个子类化 AbstractList 的列表。子类在
private 字段中存储底层实现列表中 subList 的偏移量、subList 的大小(随其生存期变化)以及底层实现列表的预期 modCount 值。子类有两个变体,其中一个实现 RandomAccess。如果此列表实现 RandomAccess,则返回的列表将是实现 RandomAccess 的子类实例。

子类的 set(
int , E)、get( int )、add( int , E)、remove( int )、addAll( int , Collection) 和 removeRange( int , int ) 方法在对索引进行边界检查和调整偏移量之后,都委托给底层实现抽象列表上的相应方法。addAll(Collection c) 方法返回 addAll(size, c)。

listIterator(
int ) 方法返回底层实现列表的列表迭代器上的“包装器对象”,使用底层实现列表上的相应方法可创建该迭代器。iterator 方法返回 listIterator(),size 方法返回子类的 size 字段。

所有方法都将首先检查底层实现列表的实际 modCount 是否与其预期的值相等,并且在不相等时将抛出 ConcurrentModificationException。


指定者:
接口 List
< E > 中的 subList
参数:
fromIndex
- subList 的低端(包括)
toIndex
- subList 的高端(不包括)
返回:
列表中指定范围的视图
抛出:
IndexOutOfBoundsException
- 端点索引值超出范围 (fromIndex < 0 || toIndex > size)
IllegalArgumentException
- 端点索引顺序颠倒 (fromIndex > toIndex)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值