概述
Vector底层也是数组,跟ArrayList很像(先看下ArrayList,再看Vector会很轻松),ArrayList可参考下文,并且由于效率低,已经被淘汰了,大概瞅瞅得了
sheng的学习笔记-ArrayList源码分析_coldstarry的博客-优快云博客
差异的:
Vector是线程安全的,不过效率低,在add等位置加了synchronized
ArrayList是线程不安全的,效率高
底层是数组

初始化
默认申请10个元素的数组

新增元素
add中有synchronized(加锁),多线程有用,但会速度慢
另外如果不设置capacityIncrement,默认每次扩容两倍(ArrayList是1.5倍),但可以自己设置扩容的步长(初始化的时候作为参数可以传进去)




指定位置上新增数据,做内存挪移,把指定位置的元素往后挪,空出个位置。然后将新的元素插入到空位置上

删除元素
找到指定的位置,计算剩余的需要挪的位置,如果删除最后一个元素比较快,如果删除中间的元素要做内存挪移,然后把最后一个元素置空

查找元素
根据对象查找
跟ArrayList一样的配方,只是加了个锁

本文对比了Vector与ArrayList的特性,Vector是线程安全的,但效率较低;ArrayList则不具备线程安全性,但运行效率较高。文章详细介绍了Vector的初始化、元素添加及删除等操作过程。


被折叠的 条评论
为什么被折叠?



