ArrayList源码
ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类。
类里面的属性:
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
private static final long serialVersionUID = 8683452581122892189L;
//默认大小
private static final int DEFAULT_CAPACITY = 10;
//空对象数组
private static final Object[] EMPTY_ELEMENTDATA = {};
默认空对象数组
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
元素数组
transient Object[] elementData; // non-private to simplify nested class access
//实际元素的容量
private int size;
//int容纳的最大容量
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
}
三种构造函数:
构造函数1:传入的数值为集合的容量
构造函数2:无参,赋值空的对象数组
构造函数3:传入一个集合(这里使用了泛型)
方法:
将集合容量和实际容量变为一样
确认容量的方法
判断需不需要扩容的方法
扩容数组的方法:
容量超过最大容量,赋值最大的容量方法
返回实际容量
判断实际容量是否为空方法
判断是否包含某个元素的方法
查找某个元素的位置方法:
查找某个元素最后出现位置方法:
克隆集合的方法:
复制集合的方法:
泛型复制数组的方法:
获取某个位置的元素方法:
获取某个位置元素的方法:
设置某个位置元素的值:
在末尾田家庵元素
指定位置添加元素
删除指定位置元素
删除指定元素
还没研究过:
清除所有元素
添加一个集合:
指定位置添加元素
移除指定范围的下表值
检查是否越界
添加是否越界:
返回下表和容量
移除所有
测试集合是否有交集
判断交集
序列化对象
异常情况:
遍历:
排序:
参考:
https://www.cnblogs.com/zhangyinhua/p/7687377.html
作者:远方的人111
来源链接:https://www.cnblogs.com/chen-hui/p/11062261.html