开发者社区 问答 正文

ArrayList:大小如何增加?

我对Java有一个基本问题ArrayList。

当ArrayList被声明和初始化使用默认构造,对于10个元件的存储器空间被创建。现在,当我添加第11个元素时,会发生什么?是否将创建具有20个(或更多)元素容量的新内存空间(这需要将元素从第一个内存位置复制到新位置)或其他东西?

我在这里检查。但是我没有找到答案。

请分享知识。谢谢。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-09 12:06:24 415 分享 版权
1 条回答
写回答
取消 提交回答
  • 创建一个新数组,并将旧数组的内容复制过来。这就是您在API级别上所知道的。引用文档(我的重点):

    每个ArrayList实例都有一个容量。容量是用于在列表中存储元素的数组的大小。它总是至少与列表大小一样大。随着元素添加到ArrayList中,其容量会自动增长。除了添加元素具有固定的摊销时间成本外,没有指定增长策略的详细信息。

    关于特定实现ArrayList(如Sun的实现)实际发生的情况,在这种情况下,您可以在源代码中查看细节。但是当然,依靠特定实现的细节通常不是一个好主意...

    2020-02-09 12:06:33
    赞同 展开评论
问答分类:
问答地址: