ArrayList实现原理和自动扩容
2022-11-18 16:34 杭伟 阅读(137) 评论(0) 编辑 收藏 举报ArrayList在Java集合中的位置,
ArrayList原理:
transient Object[] elementData;
ArrayList通过数组来实现。
默认构造方法会构造一个容量为10的空数组。
自动扩容:
在每次添加新元素(Add方法)时,都会通过grow方法判断当前list的size和list的容量的关系,以10 -> 15(1.5倍长度进行扩容)
创建一个新的长度的数组(第一次扩容是15),并复制原数组,赋给list存储对象。
copyOf方法最终采用native(操作系统底层)方法(C/C++)来完成。
也可以看到:
1,ArrayList不是线程安全的。
2,为什么ArrayList初始容量大小为10? 可能要问作者Josh Bloch, Neal Gafter
作者:hangwei
出处:http://www.cnblogs.com/hangwei/
关于作者:专注于开源平台,分布式系统的架构设计与开发、数据库性能调优等工作。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
如果您觉得文章对您有帮助,可以点击文章右下角“推荐”一下。您的鼓励是作者坚持原创和持续写作的最大动力!