判断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())