java Vector的特点与使用】的更多相关文章

Vector类实现了一个动态数组.和ArrayList和相似,但是两者是不同的: Vector是同步访问的. Vector包含了许多传统的方法,这些方法不属于集合框架. Vector主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况. Vector类支持4种构造方法. 第一种构造方法创建一个默认的向量,默认大小为10: Vector() 第二种构造方法创建指定大小的向量. Vector(int size) 第三种构造方法创建指定大小的向量,并且增量用incr指定. 增量表示向…
在写java的时候,基本上都喜欢用arraylist,甚至我都不知道有个vector的存在.查了一下发现又是线程安全问题...咋个线程安全天天围着我转呢...多得阿里巴巴,让我开始认识java的所谓线程安全问题. 1. Vector & ArrayList  1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好. 2) 当Vector或…
第1部分 Vector介绍 Vector简介 Vector也是基于数组实现的,是一个动态数组,其容量能自动增长.继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口. Vector 继承了AbstractList,实现了List:所以,它是一个队列,支持相关的添加.删除.修改.遍历等功能. Vector 实现了RandmoAccess接口,即提供了随机访问功能.RandmoAccess是java中用来被List实现,为List提供快速访问功能的…
Vector Vector的数据结构 基于数组,大小可变(数组扩容). Vector与ArrayList的比较 我看了下源码,最大区别就是Vector的方法加了synchronized,是线程安全的 常用方法使用例子 import java.util.Vector; import lombok.extern.slf4j.Slf4j; @Slf4j public class VectorTest{ public static void main(String[] args) { Vector<St…
相同点: 1.都是使用数组存储数据 不同点: 1.Vector是显示安全的,ArrayList是线程不安全的 Vector部分代码: public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = e; return true; } ArrayList部分代码: public boolean add(E e) { ens…
在网上搜了不少文章,发现有不少没讲清楚的,也有不少好文,本文希望更易懂地描述该问题.如有不对的地方,请多多指正~~ vector的使用主要有如下两种场景:(1)vector所谓的多线程安全,只是针对单纯地调用某个方法它是有同步机制的.如add,多个线程都在对同一个容器add元素,vector能够保证最后总数是正确的,而ArrayList没有同步机制,就无法保证.(2)vector的多线程安全,在组合操作时不是线程安全的.比如一个线程先调用vector的size方法得到有10个元素,再调用get(…
9.3.4 Vector向量 [专业IT培训机构,真正零首付入学www.bjsxt.com] Vector底层是用数组实现的List,相关的方法都加了同步检查,因此“线程安全,效率低”. 比如,indexOf方法就增加了synchronized同步标记. 图9-10 Vector的底层源码 老鸟建议 如何选用ArrayList.LinkedList.Vector? 1. 需要线程安全时,用Vector. 2. 不存在线程安全问题时,并且查找较多用ArrayList(一般使用它). 3. 不存在线…
/** * Collection接口  不唯一,无序 * 常用的方法: * add(Object e) 确保此 collection 包含指定的元素(可选操作). * size():获取集合中元素的个数 * remove(Object e):移除元素 * clear():清空集合中元素 * contains(Object e):判断集合中是否包含指定的元素 * isEmpty():判断集合是否为空 * iterator():获取集合对应的迭代器. * --List接口:不唯一,有序(插入顺序)…
目录 1  集合类简介  2  List介绍及简单使用 2.1  LinkedList介绍及简单使用 2.2  ArrayList介绍及简单使用 2.3  Vector介绍及简单使用 2.3.1  Stack介绍及简单使用 3  Set介绍  3.1 HashSet介绍及简单使用 3.2 TreeSet介绍及简单使用 3.3 Linked HashSet介绍 4  Map介绍及简单使用  4.1 Hashtable介绍及简单使用 4.2 HashMap简单使用 4.3 WeakHashMap介绍…
本篇随笔主要描述的是我阅读 Vector 源码期间的对于 Vector 的一些实现上的个人理解,用于个人备忘,有不对的地方,请指出- 先来看一下 Vector 的继承图: 可以看出,Vector 的直接父类是 AbstractList(已在JDK1.8源码阅读系列之一介绍过), 直接子类是 Stack(下一篇文章介绍). 在 Vector 类源码中,我认为有以下几个地方值得注意: 1.Vector 类几乎对每一个独立操作(除 Iterator 相关方法)都实现了同步,即在每个方法上几乎都增加了…