个人深入理解java集合框架:4、List

本片博文参考拭心Java 集合框架深入理解 系列
自己学习理解的一篇博文
基于jdk1.8下研究学习。

List接口

以下是官方文档介绍

An ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list.

机器翻译:

有序集合(也称为序列)。 该接口的用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。

根据官方文档的意思:这是一个有序的集合,也可以被称为序列,同时精确控制插入位置,可以通过整数索引访问;
有序,是的,list的一个大核心就是有序,而另外一个特点就是索引为整数
当然这个有序是有一定要求的,在具体实现的时候就会有相应的体现。

ArrayList中,索引就是有序的,但是所存储的元素并不一定是有序的。

List接口实现Collection接口的同时,根据自己的特性也编写了一部分新的方法:

boolean addAll(int index, Collection<? extends E> c); // 将指定集合中的所有元素插入到此列表中的指定位置。

default void replaceAll(UnaryOperator<E> operator) { // 将该列表的每个元素替换为将该运算符应用于该元素的结果。
    Objects.requireNonNull(operator);
    final ListIterator<E> li = this.listIterator(); 
    while (li.hasNext()) {
        li.set(operator.apply(li.next()));
    }
}

default void sort(Comparator<? super E> c) { // 使用随附的 Comparator排序此列表来比较元素。
    Object[] a = this.toArray();
    Arrays.sort(a, (Comparator) c);
    ListIterator<E> i = this.listIterator();
    for (Object e : a) {
        i.next();
        i.set((E) e);
    }
}

E get(int index); // 返回此列表中指定位置的元素。

E set(int index, E element); // 用指定的元素替换此列表中指定位置的元素。

void add(int index, E element); // 将指定的元素插入此列表中的指定位置。

E remove(int index); // 删除该列表中指定位置的元素。

int indexOf(Object o); // 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。

int lastIndexOf(Object o); // 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。

ListIterator<E> listIterator(); // 返回列表中的列表迭代器(按适当的顺序)。

ListIterator<E> listIterator(int index); //  从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。

List<E> subList(int fromIndex, int toIndex); // 返回此列表中指定的 fromIndex (含)和 toIndex之间的元素。

小结

总的来说:list接口规定了一部分新的规范(新定义的方法);
同时也开启了java Collection一个大分支List的学习。(这一脉的“孩子”是我们普通开发人员用的比较多的数据结构。)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值