当前位置: 代码迷 >> 综合 >> ArrayList,LinkedList
  详细解决方案

ArrayList,LinkedList

热度:104   发布时间:2023-09-05 17:41:34.0

1. ArrayList

  • 基于数组实现,允许空值和重复元素。
  • 当添加元素数量大于数组容量时,会通过1.5倍的扩容机制进行扩容。
  • 实现了 RandomAccess 接口,表明它具有随机访问的能力,所以对ArrayList 进行遍历时,不推荐使用 foreach 循环遍历,因为 foreach 最终会被转换成迭代器遍历的形式,效率不如 for(int i=0;;)的遍历方式。
  • 新增和删除操作会造成数组元素的移动。由于支持随机访问,所以get和set操作的效率很高。
  • ArrayList使用在查询较多、插入和删除较少的场景。

2. LinkedList

  • 基于双向链表实现.
  • 不支持随机访问,但插入和删除操作时间复杂度为O(1),而ArrayList为O(n)。
  • ArrayList 需要在尾部预留空间,LinkedList 不用。
  • LinkedList 用在查询较少、插入删除较多的情况。
  相关解决方案