Java源码学习之List

List

      是一种有序的容器(也被称为序列)。用户可以精确地控制每一元素在list中的插入位置。用户可以通过元素的索引获得该元素并且搜索list中的元素。

         不同于set,list允许重复的元素。

         List接口在Collection接口之外对iterator,add,remove,equals,hashCode方法增加了额外的规定。

         List接口提供了四种通过索引获取元素的方法。这些操作的执行的时间可能与索引值成比例(比如LinkedList)。因次当调用者不知道方法的具体实现时,最好通过索引迭代所有元素。

         List接口提供了一种特别的迭代器:ListIterator,它除了Iterator接口提供的常规操作外还允许元素的插入、替换和双向获取。有一种方法可以获取从list某一特定位置开始的迭代器。

         List接口提供了两种方法搜索特定的对象。从性能角度看,这些方法应当谨慎使用。在很多实现中,它们都执行大代价的线性搜索。

         List接口提供了两种方法来有效地在list的任意位置插入和删除多个元素。

        注意:当list包含其本身作为元素时,要特别小心equals和hashCode不再在此list上有良好的定义。

一些特有的方法:

        default void replaceAll(UnaryOperator<E> operator): 将operator应用在各元素上并代替原元素。

        default void sort(Comparator<? super E> c): 按照Comparator指定的顺序对list排序。

        E get(int index): 返回list内特定位置的元素。

        E set(int index, E element): 使用特定元素代替list中特定位置的元素。返回该位置的原元素。

        void add(int index, E element): 在list中的特定位置插入特定元素。原元素及之后的元素右移。

        void remove(int index): 删除list中特定位置的元素,其余元素左移。返回被删除的元素。

        int indexOf(Object o): 返回list中特定元素第一次出现的索引,如果不存在则返回-1.

        int lastIndexOf(object o): 返回list中特定元素最后一次出现的索引,如果不存在则返回-1.

        list<E> subList(int fromIndex, int toIndex): 返回list在[fromIndex, toIndex)之间的部分。若fromIndex于toIndex相等,则返回空。返回list的改变不会反应到当前list,反之亦然。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值