ArrayList的底层操作机制

  • ArrayList中维护了一个Object类型的数组elementData.
    • transient Object[] elementData
  • 当创建ArrayList对象时,如果使用的无参构造器,则初始elementData容量为0,第一次添加,则扩容为10,如果需要再次扩容,则扩容为1.5倍
  • 当创建ArrayList对象时,如果使用的有参构造器,则初始elementData容量为传入的参数大小,如果需要再次扩容,则扩容为1.5倍

ArrayList注意事项:

  • ArrayList可以加入null空元素,并且多个
  • ArrayList是由数组来实现数据存储的
  • ArrayList基本等同于Vector
    • ArrayList是线程不安全,但执行效率高
    • 多线程不建议使用ArrayList