hashMap源码

static final int hash(Object key) {

int h;

    return (key ==null) ?0 : (h = key.hashCode()) ^ (h >>>16);

}为什么不直接用hashcode?通过亦或操作,让值更加散列

if ((p = tab[i = (n -1) & hash]) ==null)数组下标为什么是(n -1) & hash?

n是数组大小2的n次方,位运算效率更高,同时和hasn%n效果一样


链表长度超过8转成红黑树(jdk1.8),?

节点<6 红黑树转成链表

链表 n 的查找复杂度O(n)

数学原理
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
    Java小辰阅读 306评论 0 0
  • 学习资料; 《Java程序性能优化》 美团点评技术团队 Java 8系列之重新认识HashMap 张旭童大佬 面试...
    英勇青铜5阅读 2,935评论 3 97
  • 一、HashMap概述 HashMap基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允许使用nul...
    小陈阿飞阅读 675评论 0 2
  • 感谢 shixinzhang的文章, 参考此:https://blog.csdn.net/u011240877/a...
    loveinthesweet阅读 482评论 0 0
  • 对你偏爱,实实在在!总是等到春暖花开,才能走进你的世界!情深似海喜乐开怀,靓丽风采随风摇摆。一路走来该不该? 心思...
    乡土詩人阅读 827评论 6 25

友情链接更多精彩内容