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);

  4. ArrayList构造函数的工作是:

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

    • 定义的集合对象大小。

    • 由用户定义。

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

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

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

  8. 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);

  4. LinkedList构造函数的工作是:

    • 默认大小。

    • 定义的集合对象大小。

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

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

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

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