ArrayList介绍
1、ArrayList底层是基于数组来实现的,因此在 get 的时候效率高,而 add 或者 remove 的时候,效率低;
2、调用默认的 ArrayList 无参构造方法的话,数组的初始容量为 10 ;
3、ArrayList 会自动扩容,扩容的时候,会将容量扩至原来的 1.5 倍;
4、ArrayList 不是线程安全的;
源码分析
构造方法
add方法
ensureCapacityInternal方法
grow方法
扩容方法其实就是新创建一个数组,然后将旧数组的元素都复制到新数组里面。add重载方法 add(int index, E element)
addAll方法
get方法
elementData方法
remove方法
remove 中主要是将之后的元素都向前一位移动,然后将最后一位的值设置为空。最后,返回已经删除的值。remove重载方法
clear方法
clear 方法无非就是遍历数组,然后把所有的值都置为 null 。
网友评论