百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Map判空 、空字符串、空key值等各种判断方法,你都掌握了吗?

toyiye 2024-07-15 01:37 8 浏览 0 评论

Map是一种无序的基于key-value的数据结构。对于开发人员来说,除了JSON以外,这种存储的方式最熟悉不过了。

经常在研发的过程中,高频用到Map的数据结构。在业务逻辑层处理中,往往会有一些对Map数据类型进行一些判空的处理,自己总结了一下,将判断方法写出供大家参考:

一、Map本身的判空

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

首先看我的demo

初入java的时候可能会有疑问,map还没有向里面添加任何值,为什么==null不成立?其实很简单,面向对象的基础中曾有说明,当new的时候,将创造了一个新的对象或者说是一个新的实例,没有new之前,是没有它的内部方法的,只有new了以后,这些东西和方法在内存中才会真的存在,即指向了一个具体地址。

如上图,我们在new的时候 调用了HashMap的无参构造方法,从源码层面看,该方法为当前对象开辟了默认的内存大小空间。

因此,得到的结果就是,当new了以后,该对象指向的是一个地址而不是一个null’值,所以在此时用“==null”并不能成立,什么情况下可以利用“==null”?如下图所示:

当它就是个空值得时候就可以利用“==null"来判断,这里的等于null 换在代码里,右边的表达式可以是一个放回了null值的方法。为当前map赋值了null,项目中就可以判断,当map没有new得时候或者是为其复制了null的时候。就可以利用=null来判断。

1.2map.isEmpty()判断为空

当map没有向里面put数据的时候,可以利用map自带得方法来进行判断该Map是否里面有值,如下图得Demo:

由此可见,map.isEmpty()当没有进行put方法操作得时候,.isEmpty()可以判断该Map里面是否有键值对存在。

1.3“==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条件进去以后会执行一连串的方法,所以数据判断是很重要的一个前提,直接影响到后续的程序执行。欢迎伙伴们来给我提出宝贵的意见和思路,一起共同进步。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码