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