大学生建设什么网站好wordpress 下载站点
大学生建设什么网站好,wordpress 下载站点,无锡上海网站建设,五力合一营销型网站建设系统HashMap的底层结构在jdk1.7中由数组链表实现#xff0c;在jdk1.8中由数组链表红黑树实现#xff0c;以数组链表的结构为例。 JDK1.8之前Put方法#xff1a; JDK1.8之后Put方法#xff1a; HashMap基于哈希表的Map接口实现#xff0c;是以key-value存储形式存在#xff0c…
HashMap的底层结构在jdk1.7中由数组链表实现在jdk1.8中由数组链表红黑树实现以数组链表的结构为例。 JDK1.8之前Put方法 JDK1.8之后Put方法 HashMap基于哈希表的Map接口实现是以key-value存储形式存在即主要用来存放键值对。HashMap 的实现不是同步的这意味着它不是线程安全的。它的key、value都可以为null。此外HashMap中的映射不是有序的。
JDK1.8 之前 HashMap 由 数组链表 组成的数组是 HashMap 的主体链表则是主要为了解决哈希冲突(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)而存在的“拉链法”解决冲突.JDK1.8 以后在解决哈希冲突时有了较大的变化当链表长度大于阈值或者红黑树的边界值默认为 8并且当前数组的长度大于64时此时此索引位置上的所有数据改为使用红黑树存储。
补充将链表转换成红黑树前会判断即使阈值大于8但是数组长度小于64此时并不会将链表变为红黑树。而是选择进行数组扩容。
这样做的目的是因为数组比较小尽量避开红黑树结构这种情况下变为红黑树结构反而会降低效率因为红黑树需要进行左旋右旋变色这些操作来保持平衡 。同时数组长度小于64时搜索时间相对要快些。所以综上所述为了提高性能和减少搜索时间底层在阈值大于8并且数组长度大于64时链表才转换为红黑树。具体可以参考 treeifyBin方法。
当然虽然增了红黑树作为底层数据结构结构变得复杂了但是阈值大于8并且数组长度大于64时链表转换为红黑树时效率也变的更高效。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91408.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!