ArrayList源码分析(一)

***
ArrayList源码分析(一)

**
ArrayList 可变长数组
    概括:
            ArrayList底层采用数组形式进行数据保存和处理。底层数组中为Object类型,可以存储任意类型数据。存储具体
        数据类型通过创建ArrayList类对象约束,因为所有的添加操作都是通过该add和addAll方法完成的。
            可变长数组是通过grow方法来进行底层数组容量扩容操作。扩容比例大约是原数组的1.5倍

ArrayList特征:
    增加慢:
        1. 有可能触发扩容操作。在扩容方法操作中,从原数组拷贝数据到新数据浪费时间,同时在扩容操作会出现无效
           内存销毁问题,同样浪费时间。
        2. 插入数据到指定下标位置,从插入位置开始,数组中的其他数据会整体向后移动,移动操作浪费时间。

     删除慢:
        1. 删除指定下标元素,数组中的元素整体向前移动。
        2. 删除元素较多情况下,会导致空间冗余。空间效率较低

     查询快:
          【寻址操作】
        ArrayList底层数据操作方式为数组方式,数组+下标获取对应元素的操作效率是非常高!是CPU根据对应【地址】
        直接访问操作。
 */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值