1.8 jdk Arraylist集合源码分析

  1. 底层数组,size是有效数据的长度,

  2. 在1.8中调用无参数构造器时底层的elementdata数组初始化为{ }

  3. add方法

    在调用add方法后底层数组才重新赋值,为新的数组,长度为10,节省了内存,只有在需要添加的时候我们才要创建数组

Vector接口

  1. 底层是Object数组,int类型属性表示数组中的有效数据

  2. Vector vr = new Vector();调用构造器的时候

  3. add

list和Vector的区别

底层都是数组的扩容

区别:

ArrayList:

  1. ArrayList底层扩容长度为缘数组的1.5倍,线程不安全,效率高

Vector:

  1. 底层扩容长度为原数组的两倍,线程安全,效率地,已经淘汰

底层都为数组:

  1. 优点:查询效率高
  2. 缺点:删除元素效率低,
  3. 特点:可重复