为了账号安全,请及时绑定邮箱和手机立即绑定

感觉速度相差不大呢?甚至调成100万1000万测试发现反倒不如默认16的速度呢?时代进步了还是我代码写错了?

package com.barry;

import java.util.HashMap;
import java.util.Map;

/**
* @Author BarryFitzgerald
* @Date 2023/4/16 19:35
* @Description:
* 1、创建10HashMap,每个HashMap含有10万条记录;
* 2、传递不同的构造方法的参数比较速度;
* 3、构造方法参数分别使用(160.75f)和(163840.75
*/
public class TestMapWithParameter {
   public static void main(String[] args) {
       long sum = 0L;
       for(int i=0;i<10;i++){
           sum +=new TestMapWithParameter().inputMap(100000,0.75f);
       }
       System.out.println(sum/10);
   }

   public Long inputMap(int initialCapacity,float loadFactor){
       String key,value;
       Map<String, String> testMap = new HashMap<String, String>(initialCapacity,loadFactor);
       long start = System.nanoTime();
       for(int i=0;i<100000;i++){
          key = String.valueOf(i);
          value = "value";
          testMap.put(key,value);
       }
       long end = System.nanoTime();
       long time = end - start;
       System.out.println("creating new hashmap using:"+time);
       return time;
   }
}


正在回答

1 回答

1万的空间和100万差别很大

16和100万差别也很大,

在100万数据面前,16383的空间和16的并没有什么差别。

再加上重复运行相同代码,Java会对优化,可能会更快。

所以会造成16的比16384快的可能。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

感觉速度相差不大呢?甚至调成100万1000万测试发现反倒不如默认16的速度呢?时代进步了还是我代码写错了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信