JAVA集合框架3---List源码解析

        柿子捡软的捏,接来下几篇会逐渐分析Java集合框架中最简单也是最常用的List集合源码。

        List表示有顺序或位置的集合。调用者可以精确控制元素插入到集合中的位置,一般List的实现类都容许包含重复元素。

        List是一个接口,扩展了Collection接口,下面看源码(以下代码只列举出了List接口扩展的方法,继承自Collection接口的方法没有列出来)

public interface List<E> extends Collection<E> {
    //插入集合c中的所有元素到指定位置
    boolean addAll(int index, Collection<? extends E> c);
    //修改集合指定位置处的元素
    E set(int index, E element);
    //添加元素到集合的指定位置
    void add(int index, E element);
    //删除集合中指定位置的元素
    E remove(int index);
    //从前往后查找对象o出现的位置
    int indexOf(Object o);
    //从后往前查找对象o出现的位置
    int lastIndexOf(Object o);
    //返回List迭代器,讲解见下面
    ListIterator<E> listIterator();
    ListIterator<E> listIterator(int index);
    //返回子列表,左闭右开
    List<E> subList(int fromIndex, int toIndex);
}

        ListIterator扩展了Iterator接口,增加了一些方法,向前遍历、添加元素、修改元素、返回索引位置等。ListIterator的源码如下:

public interface ListIterator<E> extends Iterator<E> {
    //继承自Iterator接口,判断是否还有元素
    boolean hasNext();
    //继承自Iterator接口,返回下一个元素
    E next();
    //判断是否有前一个元素
    boolean hasPrevious();
    //返回前一个元素
    E previous();
    //返回下一次next()函数返回元素的索引
    int nextIndex();
    //返回下一次previous()函数返回元素的索引
    int previousIndex();
    //继承自Iterator接口,删除上一次next()或者previous()返回的元素
    void remove();
    //修改上一次next()或者previous()返回的元素为e
    void set(E e);
    //在当前光标增加一个元素,不会影响next()的访问。但是previous()将返回刚刚添加的元素。
    void add(E e);
}

猜你喜欢

转载自blog.csdn.net/qq_22158743/article/details/87691911