黑马程序员技术交流社区

标题: 容器问题 [打印本页]

作者: 况仕    时间: 2012-5-25 09:12
标题: 容器问题
ArrayList和Vector的区别,HashMap和Hashtable的区别?
作者: niceBoy    时间: 2012-5-25 09:53
ArrayList和Vector的区别
ArrayList不支持同步,在JavaSE1.2中新增。Vector支持同步,在JavaSE1.0中提供。两个在使用上基本相同
HashMap和Hashtable的区别
HashMap不支持同步,支持null类型的键和值,版本1.2。Hashtable支持同步,但不支持null类型的键和值版本1.0。
作者: 黑马张健    时间: 2012-5-25 10:07
区别:Hashtable与HashMap
Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现.他们底层都是哈希表数据结构。
Hashtable不可以存入null值,null键,该集合线程是同步的。
HashMap可以存入null值null键,该集合线程是不同步的。

区别:ArrayList与Vector
ArrayList、Vector都实现了List接口。(List接口继承了Collection接口)
1.版本:Vector集合是在JDK1.0的时候出现的。     ArrayList集合是在JDK1.2的时候出现的。
2.数据结构:ArrayList、Vector:底层用的是数组数据结构。
3.线程方面:ArrayList是线程不安全的,它的方法之间是线程不同步的。。   Vector是线程安全的,他的方法之间线程是同步的。
4.存储特点:ArrayList与Vector都有一个初始容量,当存储进它们里面的元素的个数超过了容量时,就需要增加ArrayList与Vector的存储空间。
             ArrayList每次增长为原来的0.5倍。Vector每次增长为原来的一倍。
5.操作效率:ArrayList:查询速度快,但是增删稍慢。  Vector:增删查都慢。
            一般建议不使用Vector.尽量使用ArrayList.如果需要线程同步,就把ArrayList加上一个同步锁即可。



作者: xieshuhua    时间: 2012-5-25 10:22
同学,这些内容毕老师在Day16中都有详细描述,主要是线程的区别。你如果没有这些视频的话,我可以发给你。
希望能够帮到你~~




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