Java中各种类型判断是否为空

本文介绍了Java编程中检查对象、集合、Map和数组是否为空的各种方法及其优化。对于List,推荐使用`if(null==list||list.isEmpty())`进行判空;对于Map,`map==null`检查是否为null,`map.isEmpty()`检查是否有内容;对于对象,可以利用Apache Commons Lang的`StringUtils.isEmpty()`方法;对于数组,使用`list.isEmpty()`。此外,还讨论了数值类型的判空策略,如字符串的多种判空方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断list是否为空?


List<对象> list=new ArrayList<对象>();

方式一:
//先判断是否有这个对象,在判断有没有元素
if(list==null && list.isEmpty()){
    xxxxxx
    xxxxxx
}
//list.size()和isEmpty() 的底层一样

方式二:
//这个包org.springframework.util

CollectionUtils.CollectionUtils(list);

//CollectionUtils底层代码collection == null || collection.isEmpty();


//如果把list置为空上面的代码就会报错
优化方案
if(null == list || list.isEmpty()){
 System.out.println("list为空");
} else {
 System.out.println("list不为空");
}

判断map是否为空?


isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false
==null是判断map是否为null(即是否new分配空间,和其中的键值对没关系),若没有内容则true,否则false

Map map = new HashMap<String ,String>();
System.out.println("判断map是否有内容:"+map.isEmpty());//返回true
System.out.println("判断map是否为null:"+map==null);//返回false
 
 
 
Map map = new HashMap<String ,String>();
 map=null;
 System.out.println("判断map是否为null:"+(map==null));//结果为true
 System.out.println("判断map是否有内容:"+map.isEmpty());//NullPointerException
 
 
 
Map map = new HashMap<String ,String>();
 map.put(null,null);
 System.out.println("判断map是否为null:"+(map==null));//false
 System.out.println("判断map是否有内容:"+map.isEmpty());//false

// 优化方案
HashMap<String, Object> map = new HashMap<>(16);
 if (CollectionUtils.isEmpty(map)){
    System.out.println("空");
 }else {
    System.out.println("不为空");
 }

判断对象是否为空?

一般情况就用
if(object==null){

}

StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型

StringUtils.isEmpty(Object str); //而org.springframework.util包下的参数是Object类,也就是不仅仅能判断String类型,还能判断其他类型,比如Long等类型。

下面来看一下org.apache.commons.lang3的StringUtils.isEmpty(CharSequence cs)源码:

public static boolean isEmpty(final CharSequence cs) {
        return cs == null || cs.length() == 0;
}
public static boolean isEmpty(Object str) {
        return (str == null || "".equals(str));
}

基本上判断对象是否为空,StringUtils.isEmpty(Object str)这个方法都能搞定。

接下来就是判断数组是否为空
list.isEmpty(); //返回boolean类型。

判断数值类型是否为空?

String: 判断是否为空
if(in.equals(""))

String: 判断是否不为空
if(in!=null&&!"".equals(in.trim()))

int id = 10;
if("0".equals(String.valueOf(id)) || "null".equals(String.valueOf(id)) || id <= 0) return false;

判断String是否为空?

方法一:是我所知道的效率的最高的,也是最常用的方法。

if(s == null || s.length() <= 0)
方法二:也是最常看到的一种方法,但是效率很低。

if(s == null || s.equals(""))
方法三:是使用一种方法来判断,看上去很高端的样子,效率不明。

if(StringUtils.isBlank(s))
方法四:是在Java SE 6.0 才提供的一个方法,效率与方法一不相上下,几乎相等,但是存在兼容性问题,小心使用。

if(s == null || s.isEmpty())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值