您的位置:首页 > 其它

对HashMap扩容的耗时的测试以及自己的理解

2017-03-20 16:52 113 查看
	Map<String, String> map = new HashMap<String, String>(1024);for (int i = 0; i < 768; i++) {map.put("key"+i, "value"+i);}Long T1 =  System.nanoTime();map.put("1", "1");Long T2 =  System.nanoTime();map.put("2", "2");Long T3 =  System.nanoTime();System.out.println("发生扩容耗时: "+(T2-T1));//发生扩容耗时: 198666System.out.println("未发生扩容耗时:"+(T3-T2));//未发生扩容耗时:5333
1、初始化HashMap最大容量,默认加载因子0.75,扩容门限值1024*0.75=7682、当put的元素超过1024*0.75=768(临界值threshold)时,发生扩容,threshold也扩大原来的一倍,数组发生扩容 数组长度扩大原来的一倍,并重新计算新数组的位置. 3、加载因子:为了平衡两个问题,1、减少hash冲突;2、提高空间利用率
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hashmap 测试
相关文章推荐