天天看点

Map判断是否为空之isEmpty()与==null的区别

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
           

但isEmpty()方法对map=null时会报错,所以推荐使用Apache的工具包下面的MapUtils.isEmpty()方法。既可以判空也可以判断是否有值。