Java中ArrayList和LinkedList的区别

1)Java中的ArrayList

  1. ArrayList是Collection接口的一部分。

  2. ArrayList是List接口的实现类(即List是Collection接口的子接口,这意味着ArrayList间接是Collection接口的子类)。

  3. ArrayList引入了三个构造函数:

  • ArrayList al = new ArrayList();

  • ArrayList al = new ArrayList(Collection c);

  • ArrayList al = new ArrayList(int capacity);

  • ArrayList构造函数的工作是:

    • 默认大小(内存位置为10块)。

    • 定义的集合对象大小。

    • 由用户定义。

  • 如果我们经常进行检索操作,则建议使用ArrayList

  • ArrayList的底层数据结构是array(可调整大小的数组)。

  • 不建议在频繁操作插入或删除的地方使用ArrayList

  • ArrayList实现RandomAcess接口(这就是为什么进行检索操作的最佳选择)的原因。

  • 2)Java中的LinkedList

    1. LinkedList是Collection接口的一部分。

    2. LinkedList是List接口的实现类(即List是Collection接口的子接口,这意味着LinkedList间接是Collection接口的子类)。

    3. LinkedList引入了两个构造函数:

    • LinkedList ll = new LinkedList();

    • LinkedList ll = new LinkedList(Collection c);

  • LinkedList构造函数的工作是:

    • 默认大小。

    • 定义的集合对象大小。

  • 如果我们的常用操作是插入或删除(在中间或从中间),则建议使用LinkedList

  • LinkedList的基础数据结构是“双重链接列表”。

  • 不建议在需要频繁操作的情况下使用LinkedList

  • LinkedList没有实现RandomAcess接口(这就是为什么检索操作最差的选择)。