HashTable和HashMap很多的操作都是相同的,通过对key值进行hash获取相应的下标,采用拉链法。
下面就说说两者的不同吧。
1)hashmap在第一次put的时候才扩容,而hashtable是在初始化的时候,就新建了一个指定大小的数组,而不是推迟要第一次put。
2)hashtable是线程安全的,仔细看他的put、remove等操作,都是加了synchorized关键字的。而hashmap没有。
3)hashmap的key和value值都可以为null,但是hashtable是不允许key值为null,在put的时候,第一次操作就是判断key是否为null,否则就抛空指针异常。
4)hashmap是基于AbstactMap,而Hashtable是基于Dictionary的。虽然我还不知道这个到底什么意思。