国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java小細節(jié):List可以add(null)嗎?

kumfo / 1513人閱讀

摘要:我需要這個判斷嗎遍歷的時候,是否需要對每個元素判空換句話說,是否可以允許。然后我實驗了一下,發(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

相關(guān)文章

  • 實用 | 35個可以提高千倍效率的Java代碼技巧

    摘要:此舉能夠使性能平均提高。盡可能使用局部變量調(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)化 ,一個...

    NikoManiac 評論0 收藏0
  • Java基礎(chǔ)知識整理

    摘要:有兩個重要的子類異常和錯誤,二者都是異常處理的重要子類,各自都包含大量子類。錯誤是程序無法處理的錯誤,表示運行應(yīng)用程序中較嚴重問題。異常由虛擬機拋出。迭代器通常被稱為輕量級對象,因為創(chuàng)建它的代價小。 面向?qū)ο蠛兔嫦蜻^程的區(qū)別 面向過程 優(yōu)點: 性能比面向?qū)ο蟾撸驗轭愓{(diào)用時需要實例化,開銷比較大,比較消耗資源;比如單片機、嵌入式開發(fā)、Linux/Unix等一般采用面向過程開發(fā),性能是...

    hankkin 評論0 收藏0
  • Java 迭代器引發(fā) ConcurrentModificationException

    摘要:迭代器智能嗎第一步,將列表中的根節(jié)點找出來。源碼翻開中迭代器的源碼。在迭代器對象執(zhí)行操作之前,都會執(zhí)行方法,以判斷當前操作下是否安全。 引言 ConcurrentModificationException這個異常大家都很熟悉,當在forEach進行刪除時都會出現(xiàn)該異常。 如果你還不了解,請參考澍澍的博客:關(guān)于在list循環(huán)的過程中進行刪除的處理 - 晨澍的博客 showImg(http...

    用戶83 評論0 收藏0
  • Java 迭代器引發(fā) ConcurrentModificationException

    摘要:迭代器智能嗎第一步,將列表中的根節(jié)點找出來。源碼翻開中迭代器的源碼。在迭代器對象執(zhí)行操作之前,都會執(zhí)行方法,以判斷當前操作下是否安全。 引言 ConcurrentModificationException這個異常大家都很熟悉,當在forEach進行刪除時都會出現(xiàn)該異常。 如果你還不了解,請參考澍澍的博客:關(guān)于在list循環(huán)的過程中進行刪除的處理 - 晨澍的博客 showImg(http...

    kumfo 評論0 收藏0
  • Java8(3):Java8 中 Map 接口的新方法

    摘要:我們提一個需求給定一個,統(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]...

    Youngs 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<