Java ArrayList工作原理及实现

本文深入讲解了Java中ArrayList的工作原理及其实现细节,重点解析了ArrayList如何通过扩容1.5倍来适应数据增长的需求,并讨论了初始化容量对性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

讲解工作原理和实现的几篇好文章:

http://yikun.github.io/2015/04/04/Java-ArrayList%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE%9E%E7%8E%B0/

http://www.importnew.com/9928.html

http://zhangshixi.iteye.com/blog/674856

读完以上几篇文章理解如何扩充为原来的1.5倍 这句话就够了。

不过一想到用复制就觉得它还有可以改进的地方。

这就够了吗?

面试题:小心题坑

ArrayList list = new ArrayList(20); 中的list扩充几次

A 0     B 1     C 2      D 3

有点迷惑人,大家都知道默认ArrayList的长度是10个, 所以如果你要往list里添加20个元素肯定要扩充一次(扩充为原来的1.5倍), 但是这里显示指明了需要多少空间,所以就一次性为你分配这么多空间,也就是不需要扩充了。

推荐看看这里,没有一个同学做错,我的天!赶紧放弃编程吧!!! http://www.nowcoder.com/questionTerminal/85bf28c36fa14484b950f07d269dcd49

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值