ArrayList(JDK1.9)

时间:2023-03-09 16:48:59
ArrayList(JDK1.9)

一、ArrayList概念。

1、数据结构。它是一个数组,可以动态增长的数组。

ArrayList(JDK1.9)

2、继承实现关系图。继承抽象List,实现List、随机方法、克隆、序列化。

ArrayList(JDK1.9)

3、

二、内部类。

final class ArrayListSpliterator implements Spliterator<E>
private class Itr implements Iterator<E>
private class ListItr extends Itr implements ListIterator<E>
private static class SubList<E> extends AbstractList<E> implements RandomAccess

三、成员变量。

ArrayList(JDK1.9)

1、数组elementData。是最重要的成员。存放真实数据。

ArrayList(JDK1.9)

2、大小size。数组中已经存放的元素个数,而elementData.length表示数组的大小,显然size <= elementData.length。当两者相等则需要扩容。

ArrayList(JDK1.9)

3、数组的默认容量DEFAULT_CAPACITY。

ArrayList(JDK1.9)

4、数组最大容量MAX_ARRAY_SIZE。

ArrayList(JDK1.9)

5、空数组EMPTY_ELEMENTDATA。用户指定容量为0时返回的。

ArrayList(JDK1.9)

6、默认容量的空数组DEFAULTCAPACITY_EMPTY_ELEMENTDATA。

ArrayList(JDK1.9)

7、序列号。

ArrayList(JDK1.9)

3、

3、

四、成员方法。

1、构造方法1。指定数组大小。检查容量参数的合法性。确定数组大小。

ArrayList(JDK1.9)

2、构造方法2。不指定容量。则为空数组。

ArrayList(JDK1.9)

3、构造方法3。用一个集合初始化。

ArrayList(JDK1.9)

4、get方法。先检查参数,主要是数组下标是否越界处理。

ArrayList(JDK1.9)

5、扩容方法。新的容量 = 旧容量 + 旧容量/2;

ArrayList(JDK1.9)

ArrayList(JDK1.9)

新增数据的相关方法:

6、在尾部添加一个新元素。(检测是否扩容)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

7、指定位置处添加元素。(检查索引合法性,必须在[0,size]范围内)

ArrayList(JDK1.9)

8、在尾部添加多个新元素的集合。(检测是否扩容)

ArrayList(JDK1.9)

9、在指定位置处开始添加多个新元素的集合。(检测是否扩容)

ArrayList(JDK1.9)

删除元素的相关操作:

10、删除指定位置处的元素。(检查索引合法性;复制覆盖,返回删除的数据)

ArrayList(JDK1.9)

11、删除指定的元素。(不存在该元素则返回false,否则返回true)

ArrayList(JDK1.9)

ArrayList(JDK1.9)

12、删除所有元素。

ArrayList(JDK1.9)

更新数据的相关操作:

13、更新指定位置处的元素。(检查索引合法性、保存旧的数据、新数据覆盖,返回旧数据)

ArrayList(JDK1.9)

查找元素的相关操作:

14、获取指定位置处的元素。

ArrayList(JDK1.9)

15、获取指定元素的第一个索引。(不存在则返回-1)

ArrayList(JDK1.9)

16、获取指定元素的倒数第一个索引。(不存在则返回-1)

ArrayList(JDK1.9)

17、是否存在指定元素。

ArrayList(JDK1.9)

其他相关操作:

18、是否为空。

ArrayList(JDK1.9)

19、集合大小。

ArrayList(JDK1.9)

ArrayList(JDK1.9)

20、更改数组大小为实际元素个数的大小一样大,即size == elementData.length。

ArrayList(JDK1.9)

4、

4、

3、

4、

3、

4、

3、

4、