码迷,mamicode.com
首页 > 编程语言 > 详细

共同学习Java源代码--数据结构--List接口

时间:2016-05-13 01:07:33      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

这个接口是各种List类的抽象接口,这个接口继承自Collection接口。

public interface List<E> extends Collection<E>

这是接口的基本信息。

    int size();

这个方法返回List的元素数。

    boolean isEmpty();

这个方法判断List是否为空。

    boolean contains(Object o);

这个方法判断是否包含某个元素。

    Iterator<E> iterator();

获取迭代器的方法。

    Object[] toArray();

将List转换成数组的方法。

    <T> T[] toArray(T[] a);

将List转换成泛型数组的方法。

    boolean add(E e);

添加元素的方法。

    boolean remove(Object o);

删除元素的方法。

    boolean containsAll(Collection<?> c);

判断是否包含参数集合所有元素的方法。

    boolean addAll(Collection<? extends E> c);

将参数集合中的所有元素添加到本List中。

    boolean addAll(int index, Collection<? extends E> c);

将参数集合中的元素添加到本List的指定下标开始处。

    boolean removeAll(Collection<?> c);

从本List中删除参数集合中所有元素的方法。

    boolean retainAll(Collection<?> c);

将本List中和参数集合所有元素不一样的元素删除掉,和上面那个方法正好相反。

    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方法,进行元素替换,是为Lambda表达式准备的。参数是一元运算符的接口。

首先判断参数是否为空。然后获取List迭代器,开始迭代,让参数进行运算,然后用迭代器赋值。我就能看懂这些。。。

    default void sort(Comparator<? super E> c) {
        Object[] a = this.toArray();
        Arrays.sort(a, (Comparator) c);
        ListIterator<E> i = this.listIterator();
        for (Object e : a) {
            i.next();
            i.set((E) e);
        }
    }

default方法,进行排序。首先将本List转换成数组,然后用参数和Arrays类为转换后的数组排序。然后获取List迭代器,遍历数组将数组的每个元素用迭代器放置到合适位置。

    void clear();

清除所有元素的方法。

    boolean equals(Object o);

判断是否相等的方法。

    int hashCode();

计算哈希值的方法。

    E get(int index);

获取指定位置元素的方法。

    E set(int index, E element);

为指定位置的元素赋值的方法。

    void add(int index, E element);

为指定位置添加元素的方法。

    E remove(int index);

删除指定位置元素的方法。

    int indexOf(Object o);

返回参数元素所在位置的方法。

    int lastIndexOf(Object o);

返回参数元素最后出现的位置的方法。

    ListIterator<E> listIterator();

获取List迭代器的方法。

    ListIterator<E> listIterator(int index);

获取从指定下标开始迭代的List迭代器方法。

    List<E> subList(int fromIndex, int toIndex);

截取List的方法。

    default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, Spliterator.ORDERED);
    }

default方法,返回Spliterator,也就是将一个集合分成多个块,并行处理这多个块并将处理结果汇合到一起的一个API。

至此List接口的源码阅读完毕

共同学习Java源代码--数据结构--List接口

标签:

原文地址:http://blog.csdn.net/ccdust/article/details/51346563

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!