性能考慮,數組是首選

**一、分析 **
數組在實際的系統開發中使用的越來越少,我們通常只有在閱讀一些開源項目時才會看到它們的身影,在Java中它確實沒有List、Set、Map這些集合使用起來方便,但是在基本類型處理方面,數組還是占優勢的,而且集合的底層也是通過數組實現。

**二、場景 **
比如對一個數據集求和的計算:

//對數組求和 
public static int sum(int[] datas){ 
    int sum = 0; 
    for(int i = 0; I < datas.length; I++){ 
        sum += datas[i]; 
    } 
    return sum; 
}

對于一個int類型的數組求和,取出所有元素的數組元素并想家,此算法是基本類型則使用數組效率最高。

//對列表求和計算 
public static int sum(List<Integer> datas){ 
    int sum = 0; 
    for(int i = 0; i < datas.size(); i++){ 
        sum += datas.get(i); 
    } 
    return sum; 
} 

注意在相加求和的運算中,做了一個拆箱動作,這對于性能瀕于臨界的系統是比較危險的。

在初始化List的時候,要進行裝箱動作,雖然有整形池在,但不在整形池范圍都會產生一個新的Integer對象。

眾所周知,基本類型是在棧內存操作的,而對象則是在堆內存中操作的。棧內存的特點是速度快,容量小;堆內存的特點是速度慢,容量大(從性能上講,基本類型的處理占優勢)。

**三、建議 **
性能要求較高的場景中,使用數組替代集合。在實際測試中發現:對于基本類型進行求和計算時,數組的效率是集合的10倍。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,315評論 25 708
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,366評論 11 349
  • Java8張圖 11、字符串不變性 12、equals()方法、hashCode()方法的區別 13、...
    Miley_MOJIE閱讀 3,731評論 0 11
  • 現在每天6:15左右起床,還是不夠早呢。因為7點就得出門上班,這期間也就剩下45分鐘,穿衣洗臉刷牙吃早飯,回占用掉...
    月羊不是羊閱讀 177評論 0 1
  • 你總是很容易就下結論 從而作出規劃 我總是猶豫不決 不肯動作 昨晚做了個超真實的夢 你找了個漂亮大方的姑娘 告訴我...
    zhangjiaof閱讀 156評論 0 0