1.两者实现线程安全的方式都是通过重量级锁实现的,所以当代码量比较大时就会占用大量资源这显然不太可观;

2.hashMap和hashTable不同点:

2.1hashMap的key可以为nul,hashTable不可以为null,前者key为null是hash值为0,不为null时高低位与运算。

2.2获取下标的方式不同,hashTable获取下标的方式是取余;

2.3前者不是线程安全的,后者是线程安全的;

2.4前者是实现了Map的接口,后者由于历史原因是继承了Dictionary类;

2.5前者没有contains方法,后者是containsKey方法;

3.ArrayList和Vetor的区别:

3.1前者不是线程安全的,后者使用了synchronized关键字修饰,是线程安全的;

3.2扩容的方式不同,前者是1.5倍,后者是可以自定义扩容的长度(或者是增加原先的长度);

4.hashTable和vector基本不再维护了;