HashMap的设计理念

来源:互联网 发布:阿里云os系统手机 编辑:程序博客网 时间:2024/04/30 05:22

1. hash map需要每一个key中提供hash code,体现了空间换时间的理念

2. hash code转换到value数组的下标,使用了散列算法,其实是一个协商(协议)过程。

3. 如果不同key的散列函数的结果一样,那么多个这样的键值对组成链表。这种现象成为碰撞。

4. 使用key查询value,首先能够通过散列函数定位到链表,接着需要依次检查链表中的那个键值对的key与指定的key是相等的(eKey == key || (e.hash == hash && key.equals(eKey))),如果是则返回对应的value。如果没有碰撞,那么这个链表最多一个元素,则效率很高。