ArrayList接口

ArrayList是一个允许数据重复和null值存在的有序集合。它基于数组实现,初始容量为10,当元素超过容量时会按照1.5倍进行扩容。ArrayList提供了多种操作方法,如add、remove、get等,还有判断集合状态、转换为数组、迭代等实用功能。
摘要由CSDN通过智能技术生成
特点:

重复性:数据可以重复
null值:可以有null值存在
有序性:能保证数据插入有序

继承关系
        public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
        
        ArrayList继承AbstractList,父类中对部分接口进行实现
        实现了List接口提供的方法,Serializable说明该类能够被序列化 ,能够被克隆、序列化
底层数据结构 —> 数组
构造函数(3个)
 //有参构造,指定集合初始化大小   
             public ArrayList(int initialCapacity) {
   
             super();
             //指定大小不合法,则直接抛出异常
             初始化数组大小       
             if (initialCapacity < 0)
             throw new IllegalArgumentException("Illegal Capacity: "+
                                               initialCapacity);
             this.elementData = new Object[initialCapacity];
    }
      
//无参构造              
            public ArrayList() {
   
            super();
            this.elementData = EMPTY_ELEMENTDATA;
    }


 //有参构造,通过集合来创建新的集合
           public ArrayList(Collection<? extends E> c) {
   
            elementData = c.toArray();
            size = elementData.length;
            //c.toArray might(incorrectly)not return Object[](see 6260652)        
            if (elementData.getClass() != Object[].class)
            elementData = Arrays.copyOf(elementData, size, Object[].class);
    }  
基本属性
    private static final int DEFAULT_CAPACITY = 10;
    默认容量大小
    private static final Object[] EMPTY_ELEMENTDATA = {};
    默认数组大小
    private transient Object[] elementData;
    存储元素的数组
    private int size;
    集合存储元素的个数      
默认值 数组默认值:10
增长方式 按照原数组的1.5倍进行扩容
add()添加元素
首先需要进行扩容考虑,如果要扩容(size+1 > table.lengrh),按照1.5倍进行扩容
将元素插入数组尾部,并对计数size+1
public boolean add(E e) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值