亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

感覺速度相差不大呢?甚至調成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、構造方法參數分別使用(16,0.75f)和(16384,0.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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號