黑马程序员技术交流社区

标题: Vector与map,ArrayList的区别在哪呢? [打印本页]

作者: 欧德林    时间: 2012-4-22 10:27
标题: Vector与map,ArrayList的区别在哪呢?
Vector与map,ArrayList的区别在哪呢?

学了就忘记了,Vector一点感觉都没有,这个怎么用?

Vector v =new Vector ();  和 ArrayList a  =new  ArrayList();区别在哪


作者: 蒋亮    时间: 2012-4-22 10:42
Vector在实现中使用了同步机制,并发性能差,属于历史集合类,不是不提倡使用了吗?
作者: 王敏NO.09    时间: 2012-4-22 10:47
Vector:底层是数组数据结构。线程同步。被ArrayList替代了。
Hashtable:底层是哈希表数据结构,不可以存入null键和null值,该集合是线程同步的。Jdk1.0,效率低。
HasMap:底层是哈希表数据结构,允许使用null键和null值,该集合是不同步的。Jdk1.2,效率高。
TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进行排序。

作者: 黑马—王宁    时间: 2012-4-22 11:13
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
Vector非常类似ArrayList,但是Vector是同步的。
Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2