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 }

 

posted @ 2023-02-07 19:29  古德猫宁ovo  阅读(1518)  评论(0编辑  收藏  举报