ArrayList的底层代码

ArrayList的使用和实现:
List list=new ArrayList();
public class ArrayList<E> 
        extends AbstractList<E> 通过继承抽象类可以共享所有公共方法
        implements List<E>, 实现List接口 
        RandomAccess,  实现随机访问接口
        Cloneable, 实现克隆接口
        java.io.Serializable  实现序列化接口
    
transient Object[] elementData;  真是存放数据的数组
private int size; 当前集合中存储的元素个数 

构造器
public ArrayList() {
        //针对存储数据的数组进行初始化操作
            this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
            //常量定义为DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};空数组
            //如果使用无参构造器,则不会直接创建数组,而是采用空数组,当第一次添加元素时才创建数组
            //使用无参构造器时ArrayList会构建一个空数组用于未来存放数据,这里是一种对内存消耗的优化处理
        }

带参构造器   List list=new ArrayList(18) 
       18就是初始化容积,这里的初始化参数值必须为[0,int的最大值)
        
public ArrayList(int initialCapacity) {  //参数为初始化容积
        if (initialCapacity > 0) {  如果初始化容积大于0,则按照指定的容积创建数组
            this.elementData = new Object[initialCapacity];
        } else if (initialCapacity == 0) {
            this.elementData = EMPTY_ELEMENTDATA;  空数组,长度为0的数组
        } else {  //初始化容积值小于0则报异常
            throw new IllegalArgumentException("Illegal

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值