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

浙公网安备 33010602011771号