这是一个简单的概念记忆题,ArrayList和LinkedList的区别主要是是两种类型的底层数据结构的不同,我们只需要根据这个来回答即可。

区别如下:

  1. ArrayList通过数组动态扩容的,LinkedList的是通过双向链表实现的。
  2. ArrayList随机访问速度快于LinkedList,因为ArrayList可以通过数组下标访问,而LinkedList需要通过头节点找它的后置节点。
  3. ArrayList删除和增加节点比LinkedList慢,因为ArrayList需要调用系统的System.arraycopy函数来完成,而LinkedList直接修改前驱或者后置节点的指针即可。
  4. ArrayList占用的内存空间较LinkedList小,因为LinkedList中每个节点有前置和后置节点的指向。