这两个类都实现了List接口,List接口继承了Collection接口,他们都是有序集合.即存储在这两个集合中的元素的位置都是由顺序的,相当于一种动态的数组,我们以后可以按位置索引号来取出某个元素,并且其中的数据是允许重复的.这是HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素.也不允许有重复的元素.本题目本与hashset没有任何关系,但为了说清楚ArrayList和Vector的功能,我们使用对比方式,有利于说明问题.
接着才说ArrayList与Vector的区别,主要包括两个方面:
(1)同步性
Vector是线程安全的,也就是说它的方法之间线程同步.而ArrayList是先程序不安全的,它的方法之间的线程数不同步的,如果只有一个线程会访问到集合,那么最好用ArrayList,因为它不考虑线程安全,效率会高些.如果有多个线程会访问到集合,那么就使用Vector,因为不需要我们自己去考虑和编写线程安全代码.
备注:对于Vector和ArrayList,Hashtable和HashMap,线程安全是前2个,记住Vector和Hashtable是旧的,是java一诞生就提供了的,他们是线程安全的.而Arratlist和HashMap是java2才提供的,他们是线程不安全的.
(2)数据增长
ArrayList和Vector都有一个初始的容量大小,但存储进他们里面的元素的个数超过了容量时,就需要增加ArrayList和Vector的存储空间,每次要增加时,不是只增加一个存储单元,而是增加多个存储单元,每次增加的存储单元的个数在内存空间里同和程序效率之间要取得一定的平衡.Vector增长为原来的一倍,ArrayList增加原来的0.5倍.
分享到:
相关推荐
经典讲解List和ArrayList和Vector和HashTable和HashMap区别
ArrayList、LinkedList、Vector区别简介。
ArrayList 和 Vector 的区别和常用方法
比较ArrayList,LinkedList,Vector三者随机读取,插入,删除性能。
ArrayList Vector LinkedList 区别与用法.
Java中ArrayList和Vector的区别共2页.pdf.zip
ArrayList LinkList Vector的区别 java开发 集合 collection
Comparator的区别,List和Set集合详解,List和Set的总结,HashMap和HashTable的⽐较,Map的遍历,ArrayList 与 Vector 区别呢?为什么要⽤Arraylist取代Vector呢?HashSet与TreeSet与LinkedHashSet对⽐,HashMap 的⻓...
List、ArrayList、Vector及map、HashTable、HashMap分别的区别
要回答这个问题不能一概而论,有时候使用Vector比较好;有时是ArrayList,有时候这两个都不是最好的选择。你别指望能够获得一个简单肯定答案,因为这要看你用它们干什么。下面有4个要考虑的因素:
ArrayList、Vector、LinkedList 的区别.docx
比较分析Vector、ArrayList和hashtable hashmap数据结构
本篇文章是对Java中Vector与ArrayList的区别进行了详细的分析介绍,需要的朋友参考下
27. ArrayList 和 Vector 的区别是什么? 28. Array 和 ArrayList 有何区别? 29. 在 Queue 中 poll()和 remove()有什么区别? 30. 哪些集合类是线程安全的? 31. 迭代器 Iterator 是什么? 32. Iterator 怎么使用?...
NULL 博文链接:https://lf6627926.iteye.com/blog/1297695
Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别.
Java容器集合(equals 和 hashCode+基础数据结构+ArrayList+Vector和LinkedList)
List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 使用容器排序 Vector由于使用了synchronized方法(线程安全)
比较Vector、ArrayList和hashtable hashmap
这是我从JDK中拿出的Arraylist,Vector,LinkedList源码,自己看源码的时候弄出来的,并写了一点自己的分析,仅供源码分析者使用