当前位置: 首页 > news >正文

成都网站建设制作价格婚恋网站做期货现货贵金属的人

成都网站建设制作价格,婚恋网站做期货现货贵金属的人,品牌建设策划方案,徐州住房与城乡建设部网站1、本人博客《HashMap、HashSet底层原理分析》 2、本人博客《若debug时显示的Hashmap没有table、size等元素时#xff0c;查看第19条》 结论 1、链表长度大于8时(插入第9条时)#xff0c;会触发树化(treeifyBin)方法#xff0c;但是不一定会树化#xff0c;若数组大小小于…1、本人博客《HashMap、HashSet底层原理分析》 2、本人博客《若debug时显示的Hashmap没有table、size等元素时查看第19条》 结论 1、链表长度大于8时(插入第9条时)会触发树化(treeifyBin)方法但是不一定会树化若数组大小小于64时则会先扩容。 2、假设扩容后该链表重新计算Hash后还是放在同一个数组下标时则会出现链表长度大于8时未树化的情况。 jdk8源码(treeifyBin) final void treeifyBin(NodeK,V[] tab, int hash) {int n, index; NodeK,V e;// MIN_TREEIFY_CAPACITY 64// 链表长度小于64时会优先扩容if (tab null || (n tab.length) MIN_TREEIFY_CAPACITY)resize();else if ((e tab[index (n - 1) hash]) ! null) {TreeNodeK,V hd null, tl null;do {TreeNodeK,V p replacementTreeNode(e, null);if (tl null)hd p;else {p.prev tl;tl.next p;}tl p;} while ((e e.next) ! null);if ((tab[index] hd) ! null)hd.treeify(tab);} }测试源码(大于8时未树化) import java.util.HashMap; import java.util.Objects;public class HashmapTest {public static void main(String[] args) {HashMapUser,User hashMap new HashMap();// 同一链表插入8条for (int i 0; i 8; i) {hashMap.put(new User(张三, 18),new User(张三, i));}// 插入第九条链表长度大于8会进入treeifyBin树化方法但是未树化会执行扩容方法// 默认数组大小16扩容到32// 链表长度变成了9个Node节点并非红黑树hashMap.put(new User(张三, 18),new User(张三, 9));// 插入第10条链表长度大于8会进入treeifyBin树化方法但是未树化会执行扩容方法// 数组大小由32扩容到了64// 链表长度变成了10个Node节点并非红黑树hashMap.put(new User(张三, 18),new User(张三, 10));// 插入第十一条时树化// 数组容量还是64未触发扩容// 链表变成红黑树节点由Node变成TreeNodehashMap.put(new User(张三, 18),new User(张三, 11));} }// 重写hashCode方法保证值一样是hashcode是一样的可以使值一样的对象出现在同一链表上 class User{private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public User(String name, int age) {this.name name;this.age age;}Overridepublic String toString() {return User{ name name \ , age age };}Overridepublic int hashCode() {return Objects.hash(name, age);} }插入第九条时的Hashmap 插入第十条时结果是一样的只是数组扩容到了64 1、数组长度扩容到了32 2、Hashmap中保存了9个数据均在同一条链表 3、节点为Node节点并不是treenode(红黑树) 插入第十一条时的Hashmap 1、数组大小为64 2、节点变成了treenode(红黑树) 测试源码(大于8时树化) 初始化Hashmap时直接大于等于64则同一个链表插入第九条时直接执行了树化。 treeifyBin方法中只有数组长度小于64时才会执行扩容方法否则则是树化 // 初始化大小其他同上插入第九条时节点就变成了treenode HashMapUser,User hashMap new HashMap(64);插入第九条时的Hashmap 1、数组大小为64 2、节点变成了treenode(红黑树)
http://www.hkea.cn/news/14418367/

相关文章:

  • 长春制作网站软件西安电商网站制作
  • 三亚网站建设价格网站内页制作
  • 广东省建设工程质量安全监督检测总站网站知乎网站内容建设的逻辑
  • flash网站模板源码盐城网站建设兼职
  • 网站是如何优化的网站logo位置
  • 深圳网站制作的公司深圳app开发昌黎网站建设
  • 昭通网站建设公司永远网站建设
  • 汕头市国外网站建设公司搜索引擎营销的特点有
  • 手机网站开发在pc端西安网络推广公司
  • 什么网站发布找做效果图的苏州的网站建设
  • 哈尔滨网站制作维护有网站模板怎么建站
  • 荆州做网站公司dw软件是做什么用的
  • 哈尔滨建站免费模板建设信用卡中心网站
  • 深圳宝安商城网站建设公司wordpress手机菜单导航
  • 大寺网站建设公司多开商城
  • 做计算机题的网站网站开发合同.doc
  • 建材网站建设方案免费wap建站
  • 厦门电信网站备案网站内部链接的策略
  • 网站建设方案项目书企业公司建站平台
  • 什么网站做h5做得好淮北市官网
  • 刚做的网站怎么静安建设网站
  • 河北邯郸做wap网站攻击网站的方法
  • 网站建设进度表怎么做手机微网站建设案例及报告
  • 什么腾讯网站做任务能刷q币山西教育学会网站建设
  • wordpress如何应用插件安徽网站优化建设
  • 南京网站设计公司哪家好快站优惠券去哪里找
  • 湘潭网站建设多少钱手机连接电脑弹窗wordpress
  • 兰州网站备案商标如何自己注册
  • 黃冈建设厅官方网站姓氏logo免费设计在线生成
  • 端口映射 wordpress怎么优化网站的单个关键词排名