我对Java有一个基本问题ArrayList。
当ArrayList被声明和初始化使用默认构造,对于10个元件的存储器空间被创建。现在,当我添加第11个元素时,会发生什么?是否将创建具有20个(或更多)元素容量的新内存空间(这需要将元素从第一个内存位置复制到新位置)或其他东西?
我在这里检查。但是我没有找到答案。
请分享知识。谢谢。 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
创建一个新数组,并将旧数组的内容复制过来。这就是您在API级别上所知道的。引用文档(我的重点):
每个ArrayList实例都有一个容量。容量是用于在列表中存储元素的数组的大小。它总是至少与列表大小一样大。随着元素添加到ArrayList中,其容量会自动增长。除了添加元素具有固定的摊销时间成本外,没有指定增长策略的详细信息。
关于特定实现ArrayList(如Sun的实现)实际发生的情况,在这种情况下,您可以在源代码中查看细节。但是当然,依靠特定实现的细节通常不是一个好主意...