HashTable和HashMap

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的。虽然我还不知道这个到底什么意思。

posted on 2016-05-05 16:21  古剑苏苏  阅读(136)  评论(0编辑  收藏  举报