跳过正文
  1. 全部/
  2. 笔记/
  3. 面试/
  4. Java/
  5. 集合/

2. List

目录
  • ArrayList基于数组实现,支持快速的随机访问,但在插入和删除元素时可能涉及数组的重新分配和拷贝,影响性能。​

  • LinkedList基于链表实现,支持高效的插入和删除操作,但访问特定索引的元素比较耗时。​

  • Vector与ArrayList类似,但是线程安全的。

ArrayList
#

ArrayList 是一个数组队列,相当于动态数组。ArrayList 默认创建时容量为0,第一次添加元素时,才会使用默认初始容量10,继续添加元素时,如果发现容量已满,会自动扩容为原始大小的 1.5 倍。

ArrayList 的 Fail-Fast​
#

ArrayList 使用 modCount 来记录结构发生变化的次数。结构发生变化是指添加或者删除至少一个元素的所有操作,或者是调整内部数组的大小,仅仅只是设置元素的值 不算结构发生变化。​

在进行序列化 或 者迭代等操作时,需要比较操作前后 modCount 是否改变,如果发生改变,ArrayList 会抛出 ConcurrentModificationException。

LinkedList
#

Reply by Email