04 2017 档案

摘要:1.红-黑树的特征 它主要有两个特征:1.节点都有颜色;2.在插入和删除的过程中,要遵循保持这些颜色的不同排列的规则。首先第一个特征很好解决,在节点类中店家一个数据字段,例如boolean型变量,以此来表示节点的颜色信息。第二个特征比较复杂,红-黑树有它的几个规则,如果遵循这些规则,那么树就是平衡的 阅读全文
posted @ 2017-04-27 11:31 史安良 阅读(1551) 评论(0) 推荐(0) 编辑
摘要:以前也看过hashMap源码不过是看的jdk1.7的,由于时间问题看的也不是太深入,只是大概的了解了一下他的基本原理;这几天通过假期的时间就对jdk1.8的hashMap深入了解了下,相信大家都是对红黑树和hashMap的扩容机制resize()比较感兴趣,红黑树也是jdk1.8对hashMap新加 阅读全文
posted @ 2017-04-27 11:18 史安良 阅读(2110) 评论(0) 推荐(0) 编辑
摘要:我在看HashMap源码的时候有一个问题让我产生了兴趣,那就是HashMap的keySet方法,没有调用HashMap的有关数据的任何方法就能获取到map的所有的键,他是怎么做到的,然后我就通过模拟keySet方法得到了答案; 下面是代码: 其实是KeySet类间接的重写了abstractSet抽象 阅读全文
posted @ 2017-04-26 17:43 史安良 阅读(431) 评论(0) 推荐(0) 编辑
摘要:JDK1.7中,resize时,index取得时,全部采用重新hash的方式进行了。JDK1.8对这个进行了改善。 以前要确定index的时候用的是(e.hash & oldCap-1),是取模取余,而这里用到的是(e.hash & oldCap),它有两种结果,一个是0,一个是oldCap, 比如 阅读全文
posted @ 2017-04-20 17:29 史安良 阅读(4319) 评论(3) 推荐(4) 编辑

点击右上角即可分享
微信分享提示