摘要:我需要這個判斷嗎遍歷的時候,是否需要對每個元素判空換句話說,是否可以允許。然后我實驗了一下,發現竟然是可以的。
在寫代碼的時候,有時候遇到for循環,寫到下面的時候有一點猶豫。
List dataList = ...; for (Data d : dataList) { if (d != null) { // 我需要這個判斷嗎? // ... } }
遍歷的時候,是否需要對每個元素判空?換句話說,List是否可以允許add null。
然后我實驗了一下,發現竟然是可以的。(我之前的理解是不可以,add null可能會沒有發生任何事情)
static class Data { String mName; public Data(String s) { this.mName = s; } @Override public String toString() { return "Data:" + mName; } } public static void main(String[] args) { List dataList = new ArrayList<>(); dataList.add(null); dataList.add(new Data("shit")); System.out.println(dataList.size()); // 這里輸出的是2 for (Data d : dataList) { System.out.println(d.mName); // 這里會空指針異常 } }
好了,這樣心中的疑惑就消除了,在遍歷的時候,對每個元素判空是非常必要的。
參考資料
關于為什么ArrayList允許添加null https://softwareengineering.s...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71697.html
摘要:此舉能夠使性能平均提高。盡可能使用局部變量調用方法時傳遞的參數以及在調用中創建的臨時變量都保存在棧中速度較快,其他變量,如靜態變量實例變量等,都在堆中創建,速度較慢。 showImg(https://segmentfault.com/img/bVbsIIl?w=900&h=383);本文來源 |?http://atjf.top/3WLPmG 作者 | 萌小Q 01前沿 代碼優化 ,一個...
摘要:有兩個重要的子類異常和錯誤,二者都是異常處理的重要子類,各自都包含大量子類。錯誤是程序無法處理的錯誤,表示運行應用程序中較嚴重問題。異常由虛擬機拋出。迭代器通常被稱為輕量級對象,因為創建它的代價小。 面向對象和面向過程的區別 面向過程 優點: 性能比面向對象高,因為類調用時需要實例化,開銷比較大,比較消耗資源;比如單片機、嵌入式開發、Linux/Unix等一般采用面向過程開發,性能是...
摘要:迭代器智能嗎第一步,將列表中的根節點找出來。源碼翻開中迭代器的源碼。在迭代器對象執行操作之前,都會執行方法,以判斷當前操作下是否安全。 引言 ConcurrentModificationException這個異常大家都很熟悉,當在forEach進行刪除時都會出現該異常。 如果你還不了解,請參考澍澍的博客:關于在list循環的過程中進行刪除的處理 - 晨澍的博客 showImg(http...
摘要:迭代器智能嗎第一步,將列表中的根節點找出來。源碼翻開中迭代器的源碼。在迭代器對象執行操作之前,都會執行方法,以判斷當前操作下是否安全。 引言 ConcurrentModificationException這個異常大家都很熟悉,當在forEach進行刪除時都會出現該異常。 如果你還不了解,請參考澍澍的博客:關于在list循環的過程中進行刪除的處理 - 晨澍的博客 showImg(http...
摘要:我們提一個需求給定一個,統計每個元素出現的所有位置。而且因為方法會返回新的此時便是與相關聯的所以我們可以直接調用其方法。在本文類似需求的情況下,就適用性和簡潔性而言,要優于。 我們提一個需求:給定一個 List,統計每個元素出現的所有位置。 比如,給定 list:[a, b, b, c, c, c, d, d, d, f, f, g] ,那么應該返回:a : [0]b : [1, 2]...
閱讀 3719·2021-10-18 13:34
閱讀 2413·2021-08-11 11:15
閱讀 1207·2019-08-30 15:44
閱讀 699·2019-08-26 10:32
閱讀 995·2019-08-26 10:13
閱讀 2069·2019-08-23 18:36
閱讀 1781·2019-08-23 18:35
閱讀 531·2019-08-23 17:10