作为集合类中的一个矢量队列,Vector在多线程环境下被广泛的用作为存储结构,那么vector到底是什么,又是如何来使用的呢?今天就由我给大家介绍一下vector的使用方式和大致介绍吧,也希望大家在看完本文之后可以有所收获
工具/原料
1
jdk 1.8版本及以上
2
好用的编译器
方法/步骤
1
Vector和arraylist一样,是继承于abstractlist的队列,由于继承了abstractlist,因此支持相关的方法,比如添加、删除、修改和遍历这样子的功能。同样的,也可以进行随机访问以及克隆。需要注意的是,vector和arralist不同,这是线程安全的。
2
vector的数据结构本身和arraylist相似,都包含了elementData , elementCount, capacityIncrement。,也就是说vector本质其实还是一个数组,没有本质上的区别。包括初始化大小以及每次增长量。
3
在vector的源码中,我们可以发现,操作vector数据的每一个函数都是synchronized同步的,其实vector本身也就依赖于这个来保证自己的多线程安全,而由于同步机制的耗时问题,不推荐在非多线程以及非线程安全必要的情形下,使用vector类,而且同时由于保障机制过于简单,实际上多线程环境下,现在很少用到vector。
4
vector的遍历方式也和arraylist类似,由于本质就是个数组,所以自然最快的访问方式也就是随机访问。
5
以下是一个介绍vector使用的范例,里面涉及到各种vector的api使用,详情请见下图。
6
以上就是大致的关于vector的简要介绍,vector作为一个多线程安全的队列,其使用范围还是比较广的,但是由于保障机制属于单纯的全方法锁,所以其实实现方式就略显不足了。
注意事项
1
vector线程安全
2
vector最适合随机访问