第一篇博客哈,比较粗糙。各位将就着康康。
ArrayList 底层实现: 数组,
在源码中我们不难看出 ArrayList 容器的初始阈值是 10
它为我们提供了三个构造器
空构造器 => 创建一个空数组对象。
传入初始长度构造器 : 入参为 n => 创建一个初始长度为n的数组对象。
传入实现了Collection接口的参数 => 创建出一个包含指定元素的对象。
且实例化出来的ArrayList对象,会按照传入对象的排序规则排序。相当于把传入的对象copy了一份,再构造出一个ArrayList。(包括排序规则等等)
add() 函数
他提供了两个API
一个是 add (E e)
这个API会在ArrayList数组末尾追加一个元素。
在源码中可以看出,它会先去调用 ensureCapacityInternal 这个API 。
这个API会去判断数组的长度是否够用。如果不够用会对ArrayList进行扩容操作。
下面贴出源码
第二个 API add (int index, E element)
指定下标插入元素
set(int index, E element)方法
替换指定下标元素
remove(int index) 方法
文末,介绍下 System.arraycopy 。(来自:百度百科)