MST

星途 面试题库

面试题:Java中ArrayList动态扩容原理相关基础

请简述Java中ArrayList动态扩容的基本过程,包括何时触发扩容以及扩容的大致倍数是多少。
49.4万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 何时触发扩容
    • 当向ArrayList中添加元素时,如果当前元素个数(size)等于数组的容量(elementData.length),就会触发扩容。
  2. 扩容的大致倍数
    • ArrayList扩容时,新的容量是原来容量的1.5倍(准确来说是oldCapacity + (oldCapacity >> 1),即原容量加上原容量的一半)。例如,原容量为10,扩容后容量为15。
    • 扩容时,会先创建一个新的更大容量的数组,然后将原数组中的元素复制到新数组中。