java中Map判断是否为空之isEmpty()与==null的区别
- isEmpty()方法判断Map是否有内容(即new分配空间后是否put键值对),若没有内容则true,否则false
- == null是判断map是否为null(即是否new分配空间,和其中的键值对没关系),若没有内容则true,否则false
1 Map map = new HashMap<String ,String>(); 2 System.out.println("判断map是否有内容:"+map.isEmpty());//返回true 3 System.out.println("判断map是否为null:"+map==null);//返回false 4 5 Map map = new HashMap<String ,String>(); 6 map=null; 7 System.out.println("判断map是否为null:"+(map==null));//结果为true 8 System.out.println("判断map是否有内容:"+map.isEmpty());//NullPointerException 9 10 Map map = new HashMap<String ,String>(); 11 map.put(null,null); 12 System.out.println("判断map是否为null:"+(map==null));//false 13 System.out.println("判断map是否有内容:"+map.isEmpty());//false
新说明:
前言
比如:判断list是否为空,通过我们是这样判断的:
1 if(null != list && list.size() > 0){ 2 // ... 3 }
写多了,就感觉太繁琐了。然后list里面自带的有这样一个方法:
list.isEmpty()
它可以判断list是否有数据。但是如果list 是一个null,那么这个方法就会报java.lang.NullPointerException
异常。
记得之前在某篇文章看到的,推荐使用这个方法来判断:
CollectionUtils.isEmpty(list)
测试
1 public static void main(String[] args) { 2 List list1 = new ArrayList(); 3 List list2 = null; 4 System.out.println("结果1:" + CollectionUtils.isEmpty(list1)); 5 System.out.println("结果2:" + CollectionUtils.isEmpty(list2)); 6 System.out.println("结果3:" + list1.isEmpty()); 7 System.out.println("结果4:" + list2.isEmpty()); 8 }