区别: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加上一个同步锁即可。
|