一.AraayList有三种不同的构造方法:
1.无参构造函数,默认的数组长度为10.
2.指定初始数组长度的构造方法
3.带有Collection参数的构造方法将Collection转化为数组赋给ArrayList
二.AraayList扩容的方法:
当容量不足以容纳当前的元素个数时,就设置新的容量为旧的容量的1.5倍加1,如果设置后的新容量还不够,则直接新容量设置为传入的参数(也就是所需的容量),而后用Arrays.copyof()方法将元素拷贝到新的数组(详见下面的第3点)。从中可以看出,当容量不够时,每次增加元素,都要将原来的元素拷贝到一个新的数组中,非常之耗时,也因此建议在事先能确定元素数量的情况下,才使用ArrayList,否则建议使用LinkedList。
三.AraayList基于数组实现:
通过下标索引直接查找到指定位置的元素,因此查找效率高,但每次插入或删除元素,就要大量地移动元素,插入删除元素的效率低。
四.AraayList查找元素的方式:
码都将该元素的值分为null和不为null两种情况处理,ArrayList中允许元素为null。