HashMap实现原理总结

hashmap初始化一定是2的倍数原因 比如: 默认数组大小是16时,他的二进制码为:0001 0000 计算下表的时候将length-1,进行与运算,与运算比取模运算效率高,-1之后的二进制为:0000 1111 这样刚好数组下标的取值范围为:0~15 h 0001 1001 & 0000 1111 解决hash冲突的办法 链表法 这是jdk7主要的对同一hash值处理的方法,jdk8增加红黑树
相关文章
相关标签/搜索