zoukankan      html  css  js  c++  java
  • Java List 接口

    List 接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引来访问 List 中的元素,第一个元素的索引为 0,而且允许有相同的元素。

    源码展示

    package java.util;
    
    import java.util.function.UnaryOperator;
    
    public interface List<E> extends Collection<E> {
    
        /**
         * 返回 list 中元素的个数。
         */
        int size();
    
        /**
         * list 是否为空。
         */
        boolean isEmpty();
    
        /**
         * list 是否包含某个对象。
         */
        boolean contains(Object o);
    
        /**
         * 返回一个正确顺序的迭代器。
         */
        Iterator<E> iterator();
    
        /**
         * 返回一个包含所有元素的有序数组。
         */
        Object[] toArray();
    
        /**
         * 返回一个包含所有元素的有序泛型数组。
         */
        <T> T[] toArray(T[] a);
    
        /**
         * 添加一个元素到这个 list 的结尾。
         */
        boolean add(E e);
    
        /**
         * 删除第一个出现在 list 中的对象。
         */
        boolean remove(Object o);
    
        /**
         * list 是否包含所有集合元素。
         */
        boolean containsAll(Collection<?> c);
    
        /**
         * 添加集合中的元素到 list 中。
         */
        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);
    
        /**
         * 应用 operator 得到元素的结果替换 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()));
            }
        }
    
        /**
         * 通过传入一个 Comparator 来排序。
         */
        @SuppressWarnings({"unchecked", "rawtypes"})
        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);
            }
        }
    
        /**
         * 清空 list 中的所有数据。
         */
        void clear();
    
        /**
         * 比较是否相等。
         */
        boolean equals(Object o);
    
        /**
         * 返回 list 的 hashcode。
         */
        int hashCode();
    
        /**
         * 返回指定位置的元素。
         */
        E get(int index);
    
        /**
         * 在指定位置,替换指定元素。
         */
        E set(int index, E element);
    
        /**
         * 在指定位置,插入指定元素。
         */
        void add(int index, E element);
    
        /**
         * 移除指定位置的元素。
         */
        E remove(int index);
    
        /**
         * list 中元素第一次出现的位置。
         */
        int indexOf(Object o);
    
        /**
         * list 中元素最后一次出现的位置。
         */
        int lastIndexOf(Object o);
    
        /**
         * 返回 list 独有迭代器。
         */
        ListIterator<E> listIterator();
    
        /**
         * 返回 list 指定位置以后元素的迭代器。
         */
        ListIterator<E> listIterator(int index);
    
        /**
         * 根据开始和结束坐标返回子 list 的视图。
         */
        List<E> subList(int fromIndex, int toIndex);
    
        /**
         * 创建一个 Spliterator。
         */
        @Override
        default Spliterator<E> spliterator() {
            return Spliterators.spliterator(this, Spliterator.ORDERED);
        }
    }
    
    
  • 相关阅读:
    257. Binary Tree Paths
    324. Wiggle Sort II
    315. Count of Smaller Numbers After Self
    350. Intersection of Two Arrays II
    295. Find Median from Data Stream
    289. Game of Life
    287. Find the Duplicate Number
    279. Perfect Squares
    384. Shuffle an Array
    E
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/14979439.html
Copyright © 2011-2022 走看看