集合ArrayList源码,添加数据过程(末尾有一些常见面试题)

前沿:

在每一个阶段的学习中,都会设计到源代码的学习,源代码复杂的内容以及繁冗的代码量,真的是让我们这些初学者们绞尽脑汁,头脑爆炸,天天早上都巴不得整一瓶"六个核弹"补补,即使补了,还是让人头疼,那个逻辑思维,真的是一圈一圈的赚,转来转去,然后就把自己赚没了,时间没了,脑袋也没了(这时候,真的想,学你丫的学,不学了,lol不香嘛),虽然花话这么说,但是,每一个来到这里的学子,肯定还是想学好Java,让自己雄霸一方(其实就是养家糊口不至于要饭吃,就可以了)。

下面,我们进入正题,开始我们的手撕ArrayList源代码,请大家看过来了。

这里简单介绍一下ArrayList:ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。

ArrayList 继承了 AbstractList ,并实现了 List 接口。

前言:

我讲解该代码会从添加数据作为讲解源码的入口,为大家开始讲解,我开始会把讲解源码需要用到的代码快先一一提取出来说明,,说明完了后面才开始正式讲解,前面可以简单看一下后面跟着我的节奏去感受代码的魅力吧。

首先:先介绍一下ArrayList类中相关的元素。

在下面代码中,ArrayList类中,给我们定义了相关元素:

数组长度(底层数组的默认容量):"DEFAULT_CAPACITY"

数组名(一个元素为空的数组(没有元素的数组,长度为0))DEFAULTCAPACITY_EMPTY_ELEMENTDATA

数组名(这个素组是用于存放ArrayLis所有的元素,): elementData;

其次

元素长度(指针): size

数组最大长度: MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

这是元素的介绍,后面我们就会使用这些相关元素。

//对应的ArrayList类,继承了AbstractList类,实现了List接口
public class ArrayList<E> extends AbstractList<E> implements List<E>{
    
    //默认容量
    private static final int DEFAULT_CAPACITY = 10;
    //元素为空的数组(没有元素的数组,长度为0)
    private static f
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值