Java中各種集合判空方法總結(jié)
集合判空
CollectionUtils.isEmpty推薦
這個(gè)使用到了spring的工具類,需要提前引入依賴
import org.springframework.util.CollectionUtils;
List<String> list = new ArrayList<>(); // 使用CollectionUtils判斷l(xiāng)ist是否為空 if (!CollectionUtils.isEmpty(list)) { System.out.println("list is not empty"); }
原始判斷
List<String> list = new ArrayList<>(); if (list!=null && list.size()>0) { System.out.println("list is not empty"); }
isEmpty
這個(gè)方法是集合集成到自身的方法,可以看一下List的源碼
List<String> list = new ArrayList<>(); if (list.isEmpty()) { System.out.println("list is empty"); }
其他
List<String> list = new ArrayList<>(); if(StringUtils.isNull(list) || list.size() == 0){ System.out.println("list is empty"); }
數(shù)組判空
在Java
中,可以使用以下方式判斷一個(gè)數(shù)組是否為空:
判斷數(shù)組的長(zhǎng)度是否為0
Object[] arr = new Object[0]; if (arr.length == 0) { System.out.println("數(shù)組為空"); }
判斷數(shù)組實(shí)例是否為null
Object[] arr = null; if (arr == null) { System.out.println("數(shù)組為空"); }
在實(shí)際使用時(shí),我們可以結(jié)合以上兩種方式來(lái)進(jìn)行更精細(xì)的判斷,例如:
Object[] arr = new Object[0]; if (arr == null || arr.length == 0) { System.out.println("數(shù)組為空"); }
這樣就可以同時(shí)判斷數(shù)組實(shí)例是否為null
,以及數(shù)組的長(zhǎng)度是否為0
。
當(dāng)然,如果你是使用Java 8
及以上版本,也可以使用Arrays
類的Objects.isNull()
方法或Objects.nonNull()
方法進(jìn)行判斷:
Object[] arr1 = new Object[0]; if (Objects.isNull(arr1)) { System.out.println("數(shù)組為null"); } Object[] arr2 = new Object[0]; if (Objects.nonNull(arr2)) { System.out.println("數(shù)組不為null"); }
這樣可以使代碼更加簡(jiǎn)潔易讀。
附:測(cè)試
public static void main(String[] args) { List list1 = new ArrayList(); List list2 = null; System.out.println("結(jié)果1:" + CollectionUtils.isEmpty(list1)); System.out.println("結(jié)果2:" + CollectionUtils.isEmpty(list2)); System.out.println("結(jié)果3:" + list1.isEmpty()); System.out.println("結(jié)果4:" + list2.isEmpty()); }
總結(jié)
到此這篇關(guān)于Java中各種集合判空方法總結(jié)的文章就介紹到這了,更多相關(guān)Java集合判空內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
DoytoQuery中的關(guān)聯(lián)查詢方案示例詳解
這篇文章主要為大家介紹了DoytoQuery中的關(guān)聯(lián)查詢方案示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn)
本文主要介紹了JAVA區(qū)間值判斷[10,20)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09mybatis寫xml時(shí)數(shù)字類型千萬(wàn)別用 !=‘‘(不為空串)進(jìn)行判斷的示例詳解
這篇文章主要介紹了mybatis寫xml時(shí)數(shù)字類型千萬(wàn)別用 !=‘‘(不為空串)進(jìn)行判斷的示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09java 數(shù)據(jù)結(jié)構(gòu)二叉樹的實(shí)現(xiàn)代碼
這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)二叉樹的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2016-09-09MyBatis中 #{} 和 ${} 的區(qū)別小結(jié)
MyBatis中#{}和${}是兩種占位符,本文就來(lái)介紹一下MyBatis中 #{} 和 ${} 的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12SpringBoot2.x 整合 AntiSamy防御XSS攻擊的簡(jiǎn)單總結(jié)
本文主要對(duì)SpringBoot2.x集成AntiSamy防御XSS攻擊進(jìn)行簡(jiǎn)單總結(jié),其中SpringBoot使用的2.4.5版本,通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08SpringBoot模塊多項(xiàng)目解耦的最佳實(shí)踐
為了提高代碼質(zhì)量和靈活性,在Spring Boot項(xiàng)目中采用策略模式是一個(gè)有效的方法,該模式允許定義一系列算法并將每一個(gè)封裝起來(lái),使它們可以互相替換,本文給大家介紹了SpringBoot模塊多項(xiàng)目解耦的最佳實(shí)踐,需要的朋友可以參考下2025-02-02