HashMap和Hashtable都用于存储键和值形式的数据。两者都使用哈希技术来存储唯一密钥。
但是, 下面给出的HashMap和Hashtable类之间有许多区别。
哈希图 | 哈希表 |
---|---|
1)HashMap不同步。它不是线程安全的, 没有适当的同步代码就无法在许多线程之间共享。 | 哈希表已同步。它是线程安全的, 可以与许多线程共享。 |
2)HashMap允许一个空键和多个空值。 | Hashtable不允许任何空键或值。 |
3)HashMap是JDK 1.2中引入的新类。 | 哈希表是一个遗留类。 |
4)HashMap很快。 | 哈希表很慢。 |
5)我们可以通过调用以下代码使HashMap同步:Map m = Collections.synchronizedMap(hashMap); | 哈希表在内部是同步的, 不能不同步。 |
6)HashMap被Iterator遍历。 | Hashtable被Enumerator和Iterator遍历。 |
7)HashMap中的迭代器是快速失败的。 | Hashtable中的枚举器不是快速失败的。 |
8)HashMap继承AbstractMap类。 | Hashtable继承Dictionary类。 |
评论前必须登录!
注册