数据类型Map判空 、空字符串、空key值等各种判断方法,全网最详细

Map集合对于开发人员来说这种数据类型再熟悉 不过,个人也是特别喜欢这种键值对存在的数据类型,在自己做政府项目中,老项目组开发人员已经把controller层接收到的数据全部封装成立Map类型。
在业务逻辑层处理中,往往会对Map数据类型进行一些判空的处理,自己总结了一下,将判断方法写出供大家参考:

一、Map本身得判空

1.1“==null”不能判断Map本身是否为null

首先看我的demo
在这里插入图片描述
初入java的时候可能会有疑问,map没有向里面添加值为什么==null不成立?很简单,面向对象的基础中曾说过,当new的时候,将创造了一个新的对象或者是一个新的实例,没有new之前,是没有它的内部方法的,只有new了以后,这些东西和犯法在内存中才会真的存在。
最终得到的结果就是,当new了以后,该对象指向的是一个地址而不是一个null’值,因此,在此时用“==null”并不能成立,什么情况下可以利用“==null”? 如下图所示:
在这里插入图片描述
当它就是个空值得时候就可以利用“==null"来判断。
项目实战中就可以判断,当map没有new得时候 可以利用=null来判断。

1.2map.isEmpty()判断为空

当map没有向里面塞值得时候可以利用map自带得方法来进行判断该Map是否里面有值,如下图得Demo:
在这里插入图片描述
由此可见,map .isEmpty()当没有进行put方法操作得时候,.isEmpty()可以判断该Map里面是否有键值对存在。

1.4“==null”与“isEmpty()”最大的区别

如果map是一个null存在,那么在利用isEmpty()来判空将报错空指针异常NullponiterException。如下图
在这里插入图片描述
此外,还要注意一种情况:
在这里插入图片描述
如果该map里面会有这种情况的话,那么这两种判空方法将不能够实现业务处理。也就诞生了map的另一种判断方法,下面会详解。

2.1 map.containsKey(Object key)判断map中是否存在此键值对

在这里插入图片描述
用map.containsKey(Object key)方法可以判断出这个map中是否包含了某一个键值对,返回值为Boolean类型,在括号中填写想要查找的key值,若包含则为true,否则为false

2.2 对map中key值对应的value进行判断

在这里插入图片描述

2.3对map中key对应的value为空字符串时候的判断。

在这里会涉及到泛型的问题,如若value的值的泛型为String类型的则直接可以利用下面的方法:
在这里插入图片描述
可以取出想判断的value的key值.isEmpty()来判断。当然,如果泛型不是String类型的是否则可以利用如下的办法来解决:
在这里插入图片描述
.equeals()的方法可以很好的来判断这个map中的key对应的value是否为空。

二、总结

一般来说,对于数据类型的判空应该将空值和空字符串的问题都要判断上,逻辑层处理的时候很重要,如果没有进行严格的空值,对后面的业务处理会造成很麻烦,因为java的运行方式是一行一行的来读取,只要一个if条件进去以后会执行一连串的方法,所以判断是很重要的一个前提。可能写的还不是很完善,欢迎伙伴们来给我提出宝贵的意见和思路,一起共同进步。如果还有要对初级开发面的小伙伴们,给你们提供去年自己面试题,给大家参考参考~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/goGoing_/article/details/102532715