Map 是一个基于键值的无序数据结构。对于开发者来说,除了JSON之外,这种存储方式是最熟悉的。
键值
在研发过程中,Map的数据结构经常被频繁使用。在业务逻辑层的处理中,经常会有一些对Map数据类型的空判断处理。我总结了一下,写了判断方法供大家参考:
先看我的演示
当您第一次进入java时,您可能会有疑问。地图还没有给它增加任何价值。为什么 ==null 不成立?其实很简单。在面向对象的基础中已经解释过,当使用new时,会创建一个新的对象或者新的实例。在new之前,它没有内部方法。只有使用了new之后,这些东西和方法才真正存在于内存中,并指向一个特定的地址。
==null
如上所示,我们在使用new时调用了HashMap的无参构造方法。从源码层面来说,该方法为当前对象开辟默认的内存大小空间。
因此,结果是new创建时,对象指向的是一个地址而不是null'值,所以这个时候用“==null”是不行的,什么?这种情况下可以用“==null”吗?如下图所示:
为空值时,可以使用“==null”来判断。这里它等于null。在代码中,右侧的表达式可以是返回 null 值的方法。 。 Null 被分配给当前地图。可以在项目中判断map中没有新值或者为其复制null的情况。可以用=null来判断。
当地图没有放入数据时,可以使用地图自带的方法来判断Map中是否有值,如下demo所示:
可以看出,map.isEmpty()在不进行put方法操作时,.isEmpty()可以判断map中是否存在键值对地图。
map.isEmpty()
.isEmpty()
如果映射为空,则使用isEmpty()判断空值将会 报告错误 空指针异常 NullponiterException。如下图
isEmpty()
NullponiterException
另外,还有一种情况需要注意:
如果地图中存在这种情况,那么这两种空判断方法将无法实现业务处理。这就催生了另一种判断地图的方法,下面会详细讲解。
使用map.containsKey(Object key)方法判断地图中是否包含某个键值对。返回值是布尔类型。在括号中填写您要查找的键值。如果包含则为 true,否则为 false
map.containsKey(Object key)
这里就会涉及到仿制药的问题。如果value的泛型值是String类型,可以直接使用如下方法:
可以取出你要判断的值的键值。 isEmpty() 来判断。当然,如果泛型不是String类型,可以用下面的方法解决:
.equeals()方法可以用来判断这个map中key对应的value是否为空。
一般来说,判断数据类型时,既要判断空值,又要判断空字符串。这在处理逻辑层时非常重要。如果不进行严格的空值处理,将会影响后续的业务处理。这就造成了很大的麻烦,因为Java的运行方式是逐行读取的。只要输入一个if条件,就会执行一系列的方法。因此,数据判断是一个非常重要的前提,直接影响后续程序的执行。欢迎合作伙伴给我提出宝贵的意见和想法,共同进步。