美文网首页
Vector与ArrayList对比

Vector与ArrayList对比

作者: kindol | 来源:发表于2018-05-08 20:59 被阅读0次

    很多跟ArrayList的实现很像,继承的类和实现的接口都一模一样,采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找的快慢看是否下标查找

    Vector和ArrayList的区别:

    1. Vector由于使用了synchronized方法-线程安全,所以性能上比ArrayList要差
    2. Vector是扩展1倍,ArrayList在底层数组不够用时在原来的基础上扩展0.5倍。
    3. Vector没有缓存,如果使用无参构造函数,默认容量大小为10并且直接new Object

    capacityIncrement:

    对于Vector整个的扩容过程,就是根据capacityIncrement确认扩容大小的,若capacityIncrement <= 0 则扩大一倍,否则扩大capacityIncrement个 。

    在对元素的操作上,get、remove、add等方法都跟ArrayList的一样,只是加多了个synchronized,只要是关键性的操作,方法前面都加了synchronized关键字

    加锁和释放锁的这个过程,在系统中是有开销的,因此,在单线程的环境中,Vector效率要差很多。(多线程环境不允许用ArrayList,需要做处理)。

    和ArrayList和Vector一样,同样的类似关系的类还有HashMap和HashTable,StringBuilder和StringBuffer,后者是前者线程安全版本的实现

    相关文章

      网友评论

          本文标题:Vector与ArrayList对比

          本文链接:https://www.haomeiwen.com/subject/xktgrftx.html