LIST详解

LIST详解

  • List继承于Collection接口,除了Collection通用的方法以外,扩展了部分只属于List的方法

ArrayList(可序列化对象)

  • ArrayList是一个数组实现的列表,由于数据是存入数组中的,所以它的特点也和数组一样,查询很快,但是中间部分的插入和删除很慢

  • size,isEmpty,get,set,iteratorlistIterator操作在固定时间内运行。 add操作以摊余常数运行 ,即添加n个元素需要O(n)个时间。 所有其他操作都以线性时间运行(粗略地说)

构造方法

  1. ArrayList()

    构建一个初始容量为十的空列表

  2. ArrayList(Collection c)

    构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序

  3. ArrayList(int initialCapacity)

    构建具有指定初始容量的空列表

接口方法

    • boolean add(E e) 将指定的元素追加到此列表的末尾。
      void add(int index, E element) 在此列表中的指定位置插入指定的元素。
      boolean addAll(Collection c) 按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾。
      boolean addAll(int index, Collection c) 将指定集合中的所有元素插入到此列表中,从指定的位置开始。
      void clear() 从列表中删除所有元素。
      Object clone() 返回此 ArrayList实例的浅拷贝。
      boolean contains(Object o) 如果此列表包含指定的元素,则返回 true
      void ensureCapacity(int minCapacity) 如果需要,增加此 ArrayList实例的容量,以确保它可以至少保存最小容量参数指定的元素数。
      void forEach(Consumer action)Iterable的每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。
      E get(int index) 返回此列表中指定位置的元素。
      int indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
      boolean isEmpty() 如果此列表不包含元素,则返回 true
      Iterator iterator() 以正确的顺序返回该列表中的元素的迭代器。
      int lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
      ListIterator listIterator() 返回列表中的列表迭代器(按适当的顺序)。
      ListIterator listIterator(int index) 从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。
      E remove(int index) 删除该列表中指定位置的元素。
      boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
      boolean removeAll(Collection c) 从此列表中删除指定集合中包含的所有元素。
      boolean removeIf(Predicate filter) 删除满足给定谓词的此集合的所有元素。
      protected void removeRange(int fromIndex, int toIndex) 从这个列表中删除所有索引在 fromIndex (含)和 toIndex之间的元素。
      void replaceAll(UnaryOperator operator) 将该列表的每个元素替换为将该运算符应用于该元素的结果。
      boolean retainAll(Collection c) 仅保留此列表中包含在指定集合中的元素。
      E set(int index, E element) 用指定的元素替换此列表中指定位置的元素。
      int size() 返回此列表中的元素数。
      void sort(Comparator c) 使用提供的 Comparator对此列表进行排序以比较元素。
      Spliterator spliterator() 在此列表中的元素上创建*late-binding故障快速* Spliterator
      List subList(int fromIndex, int toIndex) 返回此列表中指定的 fromIndex (包括)和 toIndex之间的独占视图。
      Object[] toArray() 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
      T[] toArray(T[] a) 以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。
      void trimToSize() 修改这个 ArrayList实例的容量是列表的当前大小。

Vector

  • Vector就是ArrayList的线程安全版,它的方法前都加了synchronized锁,其他实现逻辑都相同。 如果对线程安全要求不高的话,可以选择ArrayList,毕竟synchronized也很耗性能

LinkedList(双向链表)

  • LinkedList继承于AbstractSequentialList。内部维护了3个成员变量,一个是当前链表的头节点,一个是尾部节点,还有是链表长度

构造方法

    • LinkedList() 构造一个空列表。
      LinkedList(Collection c) 构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。

接口方法

    • boolean add(E e) 将指定的元素追加到此列表的末尾。
      void add(int index, E element) 在此列表中的指定位置插入指定的元素。
      boolean addAll(Collection c) 按照指定集合的迭代器返回的顺序将指定集合中的所有元素追加到此列表的末尾。
      boolean addAll(int index, Collection c) 将指定集合中的所有元素插入到此列表中,从指定的位置开始。
      void addFirst(E e) 在该列表开头插入指定的元素。
      void addLast(E e) 将指定的元素追加到此列表的末尾。
      void clear() 从列表中删除所有元素。
      Object clone() 返回此 LinkedList的浅版本。
      boolean contains(Object o) 如果此列表包含指定的元素,则返回 true
      Iterator descendingIterator() 以相反的顺序返回此deque中的元素的迭代器。
      E element() 检索但不删除此列表的头(第一个元素)。
      E get(int index) 返回此列表中指定位置的元素。
      E getFirst() 返回此列表中的第一个元素。
      E getLast() 返回此列表中的最后一个元素。
      int indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
      int lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
      ListIterator listIterator(int index) 从列表中的指定位置开始,返回此列表中元素的列表迭代器(按适当的顺序)。
      boolean offer(E e) 将指定的元素添加为此列表的尾部(最后一个元素)。
      boolean offerFirst(E e) 在此列表的前面插入指定的元素。
      boolean offerLast(E e) 在该列表的末尾插入指定的元素。
      E peek() 检索但不删除此列表的头(第一个元素)。
      E peekFirst() 检索但不删除此列表的第一个元素,如果此列表为空,则返回 null
      E peekLast() 检索但不删除此列表的最后一个元素,如果此列表为空,则返回 null
      E poll() 检索并删除此列表的头(第一个元素)。
      E pollFirst() 检索并删除此列表的第一个元素,如果此列表为空,则返回 null
      E pollLast() 检索并删除此列表的最后一个元素,如果此列表为空,则返回 null
      E pop() 从此列表表示的堆栈中弹出一个元素。
      void push(E e) 将元素推送到由此列表表示的堆栈上。
      E remove() 检索并删除此列表的头(第一个元素)。
      E remove(int index) 删除该列表中指定位置的元素。
      boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
      E removeFirst() 从此列表中删除并返回第一个元素。
      boolean removeFirstOccurrence(Object o) 删除此列表中指定元素的第一个出现(从头到尾遍历列表时)。
      E removeLast() 从此列表中删除并返回最后一个元素。
      boolean removeLastOccurrence(Object o) 删除此列表中指定元素的最后一次出现(从头到尾遍历列表时)。
      E set(int index, E element) 用指定的元素替换此列表中指定位置的元素。
      int size() 返回此列表中的元素数。
      Spliterator spliterator() 在此列表中的元素上创建*late-binding故障快速* Spliterator
      Object[] toArray() 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
      T[] toArray(T[] a) 以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。

你可能感兴趣的:(LIST详解)