创建一个新数组,并将旧数组的内容复制过来。这就是您在API级别上所知道的。引用文档(我的重点):
每个
ArrayList实例都有一个容量。容量是用于在列表中存储元素的数组的大小。它总是至少与列表大小一样大。将元素添加到ArrayList后,其容量会自动增长。
除了添加元素具有固定的摊销时间成本外,没有指定增长策略的详细信息。
关于特定实现
ArrayList(如Sun的实现)的实际发生方式,在这种情况下,您可以在源代码中看到细节。但是当然,依靠特定实现的细节通常不是一个好主意…

创建一个新数组,并将旧数组的内容复制过来。这就是您在API级别上所知道的。引用文档(我的重点):
每个
ArrayList实例都有一个容量。容量是用于在列表中存储元素的数组的大小。它总是至少与列表大小一样大。将元素添加到ArrayList后,其容量会自动增长。
除了添加元素具有固定的摊销时间成本外,没有指定增长策略的详细信息。
关于特定实现
ArrayList(如Sun的实现)的实际发生方式,在这种情况下,您可以在源代码中看到细节。但是当然,依靠特定实现的细节通常不是一个好主意…