美文网首页
HashMap原理

HashMap原理

作者: 虫二无边 | 来源:发表于2015-12-15 12:03 被阅读162次

HashMap是将数组和链表的有点结合起来实现的。


数组:在内存中存储连续,访问速度较快,但是插入删除需要移动,所以比较慢,插入和删除时间复杂度是O(N),遍历复杂度是O(1)

链表:在内存中存储不连续,依靠指针指向下一个元素,插入和删除比较快,遍历比较慢,插入和删除时间复杂度是O(1),遍历复杂度是O(N)

HashMap 数组index的计算方法为:

/**

* Returns index for hash code h.

*/

staticintindexFor(inth,intlength) {

returnh & (length-1);

}

当length总是 2 的n次方时,h& (length-1)运算等价于对length取模,也就是h%length,但是&比%具有更高的效率。

index = hash(key) % array.length

相关文章

网友评论

      本文标题:HashMap原理

      本文链接:https://www.haomeiwen.com/subject/sfpuhttx.html