目录
前言
本文仅就Vector类做总结性的概述,不对源码解析。对源码感兴趣的朋友,本文也会分享博主认为写的不错的博客地址。
一、概述
Vector由数组作为底层结构实现的动态数组数据结构,其是线程安全的,常为称为线程安全的AarrayList。
二、继承关系
Vector继承AbstractList抽象类,子类为Stack,示意图如下:
三、特点
3.1 Vector特点
- 动态扩容,底层由一个可以增长的数组组成,扩容时默认为扩大两倍
- 线程安全,每个方法都有同步锁synchronized
3.2 与ArrayList的区别与联系
(1)共同点
- 底层实现均为数组
- 都支持随机访问(都继承自AbstracList)
- 默认容量都是10
- 都能动态扩容
(2)区别 - Vector是线程安全的,ArrayList不是
- Vector默认扩容为2倍,ArrayList是1.5倍
- Vector 比 ArrayList 多一种迭代器 Enumeration
(3)应用
当没有线程安全要求时,使用ArrayList,当需要线程安全时,使用ConcurrentArrayList,Vector已经被弃用。
参考资料:
https://shixin.blog.csdn.net/article/details/52900893
(有源码解析)