list 如何判空以及为什么

本文深入解析了在编程中判断List是否为空的两种常见方式:list==null与list.size()==0的区别。阐述了这两种方法在不同场景下的应用及潜在问题,指导开发者如何正确地对List进行判空操作。

一、list==null 与list.size()==0的区别

假设在json中一个list,它长这个样子:

{
    "priceFactors": [{
            "code": "region",
            "value": "region-beijing-zww"
        },{
            "code": "chargeType",
            "value": "dailySettlement"
        }]
}

那么,list == null 的情况下,它就长这个样子了:

{
    "priceFactors":null
}

而list.size()==0 的情况下,它长这个样子:

{
    "priceFactors":[]
}

因此,list == null代表这个list不存在,没有进行初始化;list.size()==0代表这个list初始化了,却没有存任何值。

二、判空只用上述其中一个,会出现什么情况?

假设你想对一个list判空,并且想在list非空的时候从list中取值。

如果只用list == null判空,只校验了这个list是不是进行初始化了,如果这个list已经进行了初始化,但是没有存值,后面从list取值的时候,依然会报错。

如果只用list.size()==0来判空,假设这个list都没有进行初始化,list.size()这里就直接空指针异常了。

三、如何对list判空。

同时使用list == null 和list.size()==0进行判空

If(list == null || list.size()==0)

或者

If(list != null && list.size()!=0)

 

Java 中,要实现 `List` 且当 `List` 为 `null` 时不报错,有以下几种常见方法: ### 方法一:使用 `if` 条件判断 ```java import java.util.ArrayList; import java.util.List; public class ListEmptyCheck { public static void main(String[] args) { List<String> list = null; if (list == null || list.isEmpty()) { System.out.println("list!"); } } } ``` 这种方法先判断 `List` 是否为 `null`,如果为 `null` 则直接定为;如果不为 `null`,再调用 `isEmpty` 方法判断是否为。 ### 方法二:使用 `Objects` 类的 `isNull` 方法辅助判断 ```java import java.util.ArrayList; import java.util.List; import java.util.Objects; public class ListEmptyCheckWithObjects { public static void main(String[] args) { List<String> list = null; if (Objects.isNull(list) || list.isEmpty()) { System.out.println("list!"); } } } ``` `Objects.isNull` 方法可以清晰地判断对象是否为 `null`,逻辑与上述方法类似。 ### 方法三:使用 Apache Commons Collections 工具包中的 `CollectionUtils.isEmpty` 方法 ```java import java.util.ArrayList; import java.util.List; import org.apache.commons.collections.CollectionUtils; public class ListEmptyCheckCollectionUtils { public static void main(String[] args) { List<String> list = null; if (CollectionUtils.isEmpty(list)) { System.out.println("list!"); } } } ``` `CollectionUtils.isEmpty` 方法内部已经处理了 `null` 的情况,会直接判断集合是否为 `null` 或者是否为。 ### 方法四:在 Python 中 ```python list = None if not list: print('list is empty') ``` 在 Python 中,`None` 和列表都可以直接通过 `not` 关键字来判断
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值