HashMap
哈希表使用的是 数组加链表的方式存储元素,具体如下:
通过hash(key)与数组长度运算,hash(key)&(length-1), 获取新元素在数组中的位置
如果数组中该位置上没有元素,那么新元素直接被放置在这个位置
如果数组中该位置上已经有元素,那么新元素被放在以这个元素开始的链表上, 进入第2步
- 遍历链表上的所有元素,比较hash值与key值,只有两者都相同的情况下,才认为找到相应的位置,如果该位置上有值了,则可以选择替换或不进行操作; 如果一直到链表的末尾都没有找到相应的元素,则在链表末尾添加相应的元素.
查找哈希表中的元素时,过程与上面大致相同,不做进一步描述.