Java Collection Framework : List

摘要:

  List 是 Java Collection Framework的重要成员,详细包括List接口及其全部的实现类。由于List接口继承了Collection接口,所以List拥有Collection的全部操作。

同一时候。又由于List是列表类型,所以List本身还提供了一些适合自身的方法。ArrayList 是一个动态数组。实现了数组动态扩容,随机訪问效率高;LinkedList是一个双向链表,随机插入和删除效率高,可用作队列的实现。


一. 要点

  1. List 基础特性与框架
  2. ArrayList :动态数组
  3. LinkedList : 双向链表

二. List 基础特性与框架

1、List 特色操作

  List 包括 List接口 以及 List接口的全部实现类(ArrayList, LinkedList, Vector,Stack), 当中 Vector 和 Stack 已过时。

由于 List 接口实现了 Collection 接口(如代码 1 所看到的)。所以 List 接口拥有 Collection 接口提供的全部经常用法,同一时候,又由于 List 是列表类型,所以 List 接口还提供了一些适合于自身的经常用法。如表1所看到的。

// 代码 1
public interface List<E> extends Collection<E> { ... }

                   表1. List 特有的方法(以AbstractList为例说明)

Function Introduction Note
boolean addAll(int index, Collection<? extends E> c) 将指定 collection 中的全部元素都插入到列表中的指定位置 可选操作
E get(int index)| 返回列表中指定位置的元素 在 AbstractList 中以抽象方法 abstract public E get(int index); 存在 AbstractList 中唯一的抽象方法
E set(int index, E element) 用指定元素替换列表中指定位置的元素 可选操作。set 操作是 List 的特有操作
void add(int index, E element) 在列表的指定位置插入指定元素 可选操作
E remove(int index) 移除列表中指定位置的元素 可选操作
int indexOf(Object o) 返回此列表中第一次出现的指定元素的索引。假设此列表不包括该元素,则返回 -1 在 AbstractList 中默认实现;在 ArrayList,LinkedList中分别重写;
int lastIndexOf(Object o) 返回此列表中最后出现的指定元素的索引。假设列表不包括此元素,则返回 -1 在 AbstractList 中默认实现;在 ArrayList,LinkedList中分别重写;
ListIterator<E> listIterator() 返回此列表元素的列表迭代器(按适当顺序) 在 AbstractList 中默认实现。ArrayList,Vector和Stack使用该默认实现。LinkedList重写该实现;
ListIterator<E> listIterator(int index) 返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置開始
原文地址:https://www.cnblogs.com/cynchanpin/p/7383784.html