中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中list集合為空或為null的區別是什么

發布時間:2021-11-12 13:35:04 來源:億速云 閱讀:273 作者:iii 欄目:開發技術

本篇內容介紹了“Java中list集合為空或為null的區別是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    list集合為空或為null的區別

    javaWeb項目,調用第三方系統獲取第三方數據庫數據時 list 集合沒有數據時 后臺報空指針

    發現原因

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

    解決方法

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

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

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

    這樣判斷我發現當集合為null的時候 , 雖然重新new啦一個集合 , 但是后臺還是會報空指針

    之后我這樣判斷就好啦

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

    出現這個問題,是因為我對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內容是否為空,即集合中一個元素也沒有, 但是使用isEmpty()和size()的前提是,list是一個空集合,而不是null,所以為了避免異常,建議在使用或賦值list集合之前,做一次空集合創建處理,進行內存空間分配,即:List list = new ArrayList();

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

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

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

    所以一般的判斷是

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

    判斷List集合為空或null

    判斷List集合是否為空

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

    新建List對象,默認是為空,即沒有數據,而不是null

    如:

    List<User> list = new ArrayList<User>();
    list1.size()==0和isEmpty()判斷的是list1內的內容為空,而不是一個空集合,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集合分配內存空間,但數據為空

    而list2為null,系統并沒有weiqi為其分配空間

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

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

    List集合判斷2個條件

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

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

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

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

    “Java中list集合為空或為null的區別是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    鹿邑县| 固始县| 施秉县| 达州市| 侯马市| 青岛市| 濮阳县| 固始县| 吉林省| 余干县| 东台市| 象山县| 乌拉特后旗| 墨竹工卡县| 张家口市| 榆林市| 三门县| 牙克石市| 土默特左旗| 绥滨县| 名山县| 青田县| 西畴县| 营口市| 云霄县| 邛崃市| 民乐县| 望城县| 平定县| 瓦房店市| 铜鼓县| 长岛县| 石屏县| 嘉黎县| 武清区| 顺义区| 新竹县| 丹寨县| 沛县| 高阳县| 威远县|