关于HashMap和HashTable

来源:互联网 发布:网络分销合作协议书 编辑:程序博客网 时间:2024/06/07 19:25

HashMap

1 线程非安全

2 单线程效率高

3 键和值都可以为空

4 继承AbstractMap类

5 使用Iterator迭代器进行便利

6 比较对象时重新计算Hash值


HashTable

1 线程安全(同步)

2 效率低

3 继承Dictionary类

4 使用原始的Enumeration

5 使用对象的Hash值


HashMap工作原理:HashMap基于哈希表原理,使用时通过put和get方法存储和获取对象。当我们将键值对传递给put()方法时,将调用键对象的HashCode方法计算HashCode值,然后找到Bucket位置来存储对象。当获取对象时通过键对象的Equals方法找到正确的键值,然后返回值对象。

【Bucket位置为一个链表,当Hashcode值相同产生冲突时,将对象存储在链表的下一个节点中】