最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中l(wèi)ist集合為空或為null的區(qū)別說明

 更新時間:2021年11月12日 11:53:30   作者:Architect_csdn  
這篇文章主要介紹了Java中l(wèi)ist集合為空或為null的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

list集合為空或為null的區(qū)別

javaWeb項目,調(diào)用第三方系統(tǒng)獲取第三方數(shù)據(jù)庫數(shù)據(jù)時 list 集合沒有數(shù)據(jù)時 后臺報空指針

發(fā)現(xiàn)原因

后臺查詢數(shù)據(jù)庫總記錄數(shù)為0(數(shù)據(jù)庫確實無數(shù)據(jù))時,我直接設(shè)置查詢對象集合list置為null, 然后返給頁面了,

解決方法

后臺查詢數(shù)據(jù)庫總記錄數(shù)為0(數(shù)據(jù)庫確實無數(shù)據(jù))時,將list 重新new一個,再返給頁面,

這樣就后臺控制臺就不會報空指針啦

if(list!=null && !list.isEmpty()){ 
//這個里面取list中的值 
}else{ 
//做其他處理 }

這樣判斷我發(fā)現(xiàn)當(dāng)集合為null的時候 , 雖然重新new啦一個集合 , 但是后臺還是會報空指針

之后我這樣判斷就好啦

if(list!=null && list.size()!=0{ 
//這個里面取list中的值 
}else{ 
//做其他處理 }

出現(xiàn)這個問題,是因為我對Java List集合是否為空還是為null的理解不夠深刻。

我記錄如下要點

1.判斷一個list集合是否為空

在Java中,list集合為空(集合中無元素),還是為null,這是兩碼事。

舉例,我有一個空著的水杯(list),而你沒有,那你是null,我的size為0。你想裝水就需要自己去買個水杯(new ArrayList();),但是我就可以直接裝水(list.add(水))。你要是沒有杯子直接倒水,水就流出去啦(空指針異常)。

2.那么,我們什么時候用null,什么時候用isEmpty()或list.size()呢?

isEmpty() 或者(list.size() == 0)用于判斷List內(nèi)容是否為空,即集合中一個元素也沒有, 但是使用isEmpty()和size()的前提是,list是一個空集合,而不是null,所以為了避免異常,建議在使用或賦值list集合之前,做一次空集合創(chuàng)建處理,進行內(nèi)存空間分配,即:List list = new ArrayList();

3.list.isEmpty()和list.size()==0 沒有區(qū)別

isEmpty()判斷有沒有元素,而size()返回有幾個元素,如果判斷一個集合有無元素,建議用isEmpty()方法,看起來清晰明了。

4.list等于null,可理解為沒有對list集合分配內(nèi)存空間,實際上壓根就不存在。

所以一般的判斷是

if(list!=null && !list.isEmpty()){  
//這個里面取list中的值  
}else{  
//做其他處理  
}

判斷List集合為空或null

判斷List集合是否為空

Java中,判斷List集合是否為空與是否為null并不相同

新建List對象,默認(rèn)是為空,即沒有數(shù)據(jù),而不是null

如:

List<User> list = new ArrayList<User>();
list1.size()==0和isEmpty()判斷的是list1內(nèi)的內(nèi)容為空,而不是一個空集合,null
List list2 = null;
這樣聲明的list2為null

測試下list是否為空

List<User> list1 = new ArrayList<User>();
        if (list1 != null) {
            System.out.println(list1.size() + "1");
        }
        if (list1.size() > 0) {
            System.out.println("2");
        }
        if (null == list1) {
            System.out.println("3");
        }
        if (list1.size() == 0) {
            System.out.println("4");
        }
        if (list1 != null && list1.size() == 0) {
            System.out.println("test  list==0");
        }
        if (list1 != null && list1.size() > 0) {
            System.out.println("test list>0");
        }
        List<User> list2 = null;
        System.out.println(list2 + "==>list2=null");

輸出得到:

01

4

test list==0

null==>list2=null

可以得到list1.size()為0,可以理解為對list集合分配內(nèi)存空間,但數(shù)據(jù)為空

而list2為null,系統(tǒng)并沒有weiqi為其分配空間

網(wǎng)上有個例子,list1可以比喻成空的水杯,沒有水,所以size為0

而list2則沒有水杯,空指針異常

List集合判斷2個條件

if(null == list || list.size() ==0 ){
}

1.判斷null == list ,判斷是否有這個容器水杯

2.list.size() == 0,判斷容器水杯內(nèi)是否有水

3.list.size()和list.isEmpty()判斷含義一致

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java基于HttpClient實現(xiàn)RPC的示例

    Java基于HttpClient實現(xiàn)RPC的示例

    HttpClient可以實現(xiàn)使用Java代碼完成標(biāo)準(zhǔn)HTTP請求及響應(yīng)。本文主要介紹了Java基于HttpClient實現(xiàn)RPC,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Java字符串格式化,{}占位符根據(jù)名字替換實例

    Java字符串格式化,{}占位符根據(jù)名字替換實例

    這篇文章主要介紹了Java字符串格式化,{}占位符根據(jù)名字替換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • MyBatis-Plus聯(lián)表查詢以及分頁代碼實例

    MyBatis-Plus聯(lián)表查詢以及分頁代碼實例

    在開發(fā)中遇到了一個問題,需要進行聯(lián)表查詢并進行分頁,因為不想自己來寫分頁,所以還是依靠MybatisPlus來實現(xiàn)想要的功能,下面這篇文章主要給大家介紹了關(guān)于MyBatis-Plus聯(lián)表查詢以及分頁的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • java使用UDP實現(xiàn)多人聊天功能

    java使用UDP實現(xiàn)多人聊天功能

    這篇文章主要為大家詳細(xì)介紹了java使用UDP實現(xiàn)多人聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java驗證日期時間字符串是否合法的三種方式

    Java驗證日期時間字符串是否合法的三種方式

    判斷日期經(jīng)常合法出現(xiàn)在IO場景下,下面將盡量使用簡練的思路和代碼呈現(xiàn)給大伙,這篇文章主要給大家介紹了關(guān)于Java驗證日期時間字符串是否合法的三種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 將下載好的jar包導(dǎo)入到本地maven倉庫中操作

    將下載好的jar包導(dǎo)入到本地maven倉庫中操作

    這篇文章主要介紹了將下載好的jar包導(dǎo)入到本地maven倉庫中操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 詳解SpringBoot中@NotNull,@NotBlank注解使用

    詳解SpringBoot中@NotNull,@NotBlank注解使用

    這篇文章主要為大家詳細(xì)介紹了Spring?Boot中集成Validation與@NotNull,@NotBlank等注解的簡單使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • Flask實現(xiàn)異步非阻塞請求功能實例解析

    Flask實現(xiàn)異步非阻塞請求功能實例解析

    這篇文章主要介紹了Flask實現(xiàn)異步非阻塞請求功能實例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Java 實戰(zhàn)項目錘煉之網(wǎng)上花店商城的實現(xiàn)流程

    Java 實戰(zhàn)項目錘煉之網(wǎng)上花店商城的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+jsp+servlet+mysql+ajax實現(xiàn)一個網(wǎng)上花店商城系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • 在Java中輕松使用工廠設(shè)計模式介紹

    在Java中輕松使用工廠設(shè)計模式介紹

    這篇文章主要介紹了在Java中輕松使用工廠設(shè)計模式介紹,工廠設(shè)計模式或工廠方法設(shè)計模式是一種廣泛使用且易于理解的設(shè)計模式,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,感興趣的朋友可以參考一下
    2022-09-09

最新評論

祁门县| 米脂县| 临猗县| 白沙| 辽阳市| 扬州市| 佳木斯市| 镇平县| 鄢陵县| 米林县| 勃利县| 英山县| 个旧市| 平乡县| 阜新市| 温州市| 恩平市| 措勤县| 观塘区| 乐清市| 菏泽市| 平潭县| 苏州市| 武强县| 昭苏县| 霸州市| 高陵县| 新蔡县| 洪江市| 昌乐县| 乡宁县| 夏津县| 蚌埠市| 桐庐县| 荥阳市| 东安县| 澳门| 三亚市| 文水县| 三原县| 三门县|