首页
/
每日頭條
/
生活
/
hashmap 定義并初始化
hashmap 定義并初始化
更新时间:2026-04-02 06:14:33

hashmap的優化點,創建HashMap時,如果已經知道大概要放多少的數據量,可以自己設置好長度,減少擴容,提高速度。代碼比較,存放3個數。不設置初始化大小

private static void test1(){ long l1 = System.nanoTime(); Map<String,String> dataMap = new HashMap<>(); dataMap.put("1", "A"); dataMap.put("2", "B"); dataMap.put("3", "C"); long l2 = System.nanoTime(); System.out.println("花費時間納秒:" (l2-l1)); }

設置初始化大小

private static void test2(){ long l1 = System.nanoTime(); Map<String,String> dataMap = new HashMap<>(8); dataMap.put("1", "A"); dataMap.put("2", "B"); dataMap.put("3", "C"); long l2 = System.nanoTime(); System.out.println("花費時間納秒:" (l2-l1)); }

查看兩者的時間差,單位是納秒

hashmap 定義并初始化(HashMap初始化長度設置大小)1

多次運行結果,發現設置了長度時,花費的時間短了許多,大概是不設置的1/3存放10萬條數據比較二者耗時,大概是不設置長度的時間的一半

hashmap 定義并初始化(HashMap初始化長度設置大小)2

那麼有個問題了,如果創建HashMap是,傳了長度參數5?那它的長度就是5麼?,首先看下一下HashMap的構造函數

hashmap 定義并初始化(HashMap初始化長度設置大小)3

可以看到有3個構造方法,無參構造函數,我們知道默認的長度是16

/** * The default initial capacity - MUST be a power of two. * 默認初始容量-必須是2的幂。 */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16

隻有一個參數的就是可以自定義初始map的長度,若果我們傳的參數是5,那麼map的長度就是5嗎?

答案是NO,記着看這句話,默認初始容量-必須是2的幂。如果傳的參數是5,hashmap底層會自動幫我們優化成比5大的2的倍數的最小值,也就是2的3次方8。源碼如下

hashmap 定義并初始化(HashMap初始化長度設置大小)4

hashmap 定義并初始化(HashMap初始化長度設置大小)5

Returns a power of two size for the given target capacity.

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
姓牛男孩時尚有内涵的名字
姓牛男孩時尚有内涵的名字
姓牛男孩時尚有内涵的名字?牛鏡維牛昊越,下面我們就來說一說關于姓牛男孩時尚有内涵的名字?我們一起去了解并探讨一下這個問題吧!姓牛男孩時尚有内涵的名字牛鏡維牛昊越牛勝初牛躍璇牛沈帆牛卓觀牛啟杭牛健璇牛妁海牛程成牛棟禮牛純璞牛瑾熔牛進軍牛琢琢牛...
2026-04-02
哈弗h6油耗深度測評
哈弗h6油耗深度測評
上期說到我朋友瓜瓜開着他新買的哈弗H6去測試越野性能,結果他對于H6越野能力不是很滿意,甚至有點埋怨我叫他買哈弗H6的意思。H6其實還是有一定的越野能力,當時我考慮到他的資金問題就推薦他買哈弗H6,沒想到他對越野方面還是有點要求的。我對瓜瓜...
2026-04-02
煎鴨肉怎麼做
煎鴨肉怎麼做
煎鴨肉怎麼做?食材:鴨子1隻、姜4片、蚝油1勺、米酒1勺,接下來我們就來聊聊關于煎鴨肉怎麼做?以下内容大家不妨參考一二希望能幫到您!煎鴨肉怎麼做食材:鴨子1隻、姜4片、蚝油1勺、米酒1勺。清水放入幾片姜,放兩勺鹽。再放一大勺米酒。将鴨子放入...
2026-04-02
超下飯的麻婆豆腐怎麼做
超下飯的麻婆豆腐怎麼做
嘿,小夥伴們,這次介紹的就是大名鼎鼎的經典川菜美食——麻婆豆腐。一個在家就可以燒的特别美味的菜肴,而且特别适合那些家裡沒有多少食材也不想出去買菜、更不想花大量時間燒菜的人們。這道菜更是因為突出了川菜中“麻辣”的特點,口味獨特,口感順滑,更是...
2026-04-02
淘寶商家的忠告
淘寶商家的忠告
淘寶商家的忠告?7月上旬,千牛針對淘寶的商家群體做了個問卷調查,征集大家在做生意中碰到的想要被解決的問題,下面我們就來說一說關于淘寶商家的忠告?我們一起去了解并探讨一下這個問題吧!淘寶商家的忠告7月上旬,千牛針對淘寶的商家群體做了個問卷調查...
2026-04-02
Copyright 2023-2026 - www.tftnews.com All Rights Reserved