哈嘍,親愛的小伙伴們,技術學磊哥,進步沒得說!歡迎來到新一期的性能解讀系列,我是磊哥。 今天給大家帶來的是關於阿里巴巴《Java開發手冊》泰山版(最新)中關於集合初始化時的性能建議。 阿里巴巴《Java開發手冊》第 1 章編程規范,第 6 節集合處理的第 17 條規定如下: 【推薦 ...
集合是Java開發日常開發中經常會使用到的。在之前的一些文章中,我們介紹過一些關於使用集合類應該注意的事項,如 為什么阿里巴巴禁止在 foreach 循環里進行元素的 remove add 操作 。 關於集合類, 阿里巴巴Java開發手冊 中其實還有另外一個規定: 本文就來分析一下為什么會有如此建議 如果一定要設置初始容量的話,設置多少比較合適 為什么要設置HashMap的初始化容量 我們先來寫一 ...
2019-05-08 11:16 0 675 推薦指數:
哈嘍,親愛的小伙伴們,技術學磊哥,進步沒得說!歡迎來到新一期的性能解讀系列,我是磊哥。 今天給大家帶來的是關於阿里巴巴《Java開發手冊》泰山版(最新)中關於集合初始化時的性能建議。 阿里巴巴《Java開發手冊》第 1 章編程規范,第 6 節集合處理的第 17 條規定如下: 【推薦 ...
我們使用的HashMap一般情況的存儲在1W對以上,默認的初始的table容量是16, 默認reHash每次容量翻倍,多次重構,影響性能 說明: HashMap 使用 HashMap(int initialCapacity) 初始化,正例: initialCapacity = (需要存儲 ...
集合是Java開發日常開發中經常會使用到的,而作為一種典型的K-V結構的數據結構,HashMap對於Java開發者一定不陌生。 關於HashMap,很多人都對他有一些基本的了解,比如他和hashtable之間的區別、他和concurrentHashMap之間的區別等。這些都是比較常見 ...
也顯得異常重要。所以:對於已知的情景,請為集合指定初始容量。 [Java] 純文本查看 ...
阿里巴巴開發規范中,推薦用戶在初始化HashMap時,應指定集合初始值大小。 一、原因 這個不用多想,肯定是效率問題,那為什么會造成效率問題呢? 當我們new一個HashMap沒有對其容量進行初始化的時候,系統會默認創建一個16大小的集合。當我們使用的集合太小時,就會造成內存的浪費 ...
也顯得異常重要。所以:對於已知的情景,請為集合指定初始容量。 上面代碼兩個list都是插入 ...
問題引入 注:本文代碼源自java 9。 阿里的插件對於初始化HashMap時,調用無參構造方法,提示如下: 那么問題來了,如果已知需要向 map 中 put n次,那么需要設定初始容量為多少? 單純的我今天上午還認為是合理的容量是 n + 1 即可,直到看了源碼; 應注意 ...