深度剖析ArrayList

本文详细介绍了ArrayList的内部结构、构造方法、常用操作以及性能特点。ArrayList是Java中常见的集合类型,它实现了List接口,提供动态扩容功能。文章通过源码分析,展示了ArrayList如何根据需要自动调整容量,以及不同构造方法的实现。同时,讨论了add、set、get、remove等关键操作的实现原理,并指出在多线程环境下ArrayList的线程不安全性。
摘要由CSDN通过智能技术生成

一. ArrayList 初识

ArrayList是集合的一种实现,实现了接口List,List接口继承了Collection接口。

ArrayList 是java 中最常用的集合类型,这是因为它使用起来非常简单,而且它提供了非常丰富的功能,并且性能非常好,这里需要注意的是性能是以牺牲了线程安全为代价的,ArrayList 好用又很大一部分来自它的动态扩容,不像数组那样你需要提前计算好数组的大小,ArrayList 会随着元素的增加自动扩容。

虽然在其内部它并不是真正的弹性数组在不断增长,但它就像拥有一个具有初始容量(默认为长度为10的数组)的数组一样简单。当超过这个限制创建另一个数组,它是原始数组的1.5倍,旧数组中的元素被复制到新数组中。

ArrayList使用非常广泛,不论是数据库表查询,excel导入解析,还是网站数据爬取都需要使用到,了解ArrayList原理及使用方法显得非常重要。

下面就是ArrayList 的真实形态了

image-20201206095212963

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不二人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值