簡體   English   中英

遍歷 Java 中的 autobox 類型列表

[英]Iterate over a list of autobox type in Java

如果我填充這樣的列表

        List<Integer> l = new ArrayList<>();
        for(int i = 0; i < 1000000; ++i) {
            l.add(i);
        }

迭代此列表的最佳方法是什么(就代碼清潔度和效率而言):

使用 autobox 類型

        for(Integer i : l) {
            // do stuff...
        }

或原始類型

        for(int i : l) {
            // do stuff...
        }

實際上,第一個循環 - for(Integer i: l) - 沒有自動裝箱,因為lList<Integer> 當您將元素添加到該List時,會發生自動裝箱。

另一方面,第二個循環 - for(int i: l) - 將Integer元素自動拆箱到int s。

至於哪個更好,這取決於你要對這些元素做什么。

例如,如果您要將它們添加到另一個List (或檢查它們是否是某些Map的鍵),則無需將它們拆箱,因此您可以使用第一個循環。

另一方面,如果您要對它們進行數字運算(例如計算它們的總和),則無論如何您都必須將它們拆箱,因此您最好在第二個循環中使用 go。

我嘗試了兩個選項來計算列表的總和,這就是結果在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM