ArrayList和Vector的异同

ArrayList

  1. ArrayList可以存入多个null

  2. ArrayList底层由数组实现

  3. ArrayList基本等同于Vector, ArrayList是线程不安全的(没有synchronized关键字修饰),(执行效率高),在多线程情况下,不建议使用ArrayList

 

Vector

  1. Vector底层也是一个对象数组,protected Object[] elementData;

  2. Vector是线程同步的,即线程安全,Vector类的操作方法带有synchronized修饰符

  3. 开发中,需要线程同步安全时,考虑使用Vector

总结

  

名称底层结构版本线程安全(同步)效率扩容倍数
ArrayList 可变数组 jdk1.2 不安全,效率高 如果有参构造,按1.5倍扩容 如果是无参 1.默认是10 2.从第二次开始按1.5倍
Vector 可变数组 jdk1.0 安全,效率不高 如果指定大小,则每次直接按2倍扩容 如果是无参,默认是10,满后就按2倍扩容
posted @ 2021-11-16 11:08  肖万  阅读(44)  评论(0)    收藏  举报