当前位置: 首页 > news >正文

【有趣的】关于Map的一些小测试

Map在代码中用到得非常多,它是无序的、key-value结构的,其读取会非常快。
今天看了个小文章Map判空 、空字符串、空key值等各种判断方法,你都掌握了吗?便自己也玩一下。

一、判空

在这里插入图片描述
因为对象已经new出来了,所以map指向的是内存里的一块空间,它不是null。要判断map里是否没有键值对,应该用isEmpty()。
在HashMap实现类中,isEmpty()的逻辑是这样的:

public boolean isEmpty() {return size == 0;}

所以,代码中也可以通过.size()来判断,但是没有isEmpty()优雅呢:
在这里插入图片描述

二、判空2

在这里插入图片描述
已经指定了map就是null,没想到打印日志时还搞出了29行的笑话(⊙﹏⊙)
注意:使用isEmpty()前还是得判null,否则可能空指针。
标准写法如下:

if(map != null && !map.isEmpty()){System.out.println("这是标准写法");
}

三、key和value都可为null

在这里插入图片描述
注意,map.put(null,null);是能够执行的!

四、取key为null

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2E2IDtXD-1690973454147)(https://imgblog.csdnimg.cn/9659a74a5b014d3ebbde3be34f2031b1.png)]

注意map里get的是null,是能够取到值的。
当value为null时,get这个key得到的为null,与获取一个不存在的key效果一样。

五:其他

其他的方法没有玩,就不记录了,像是contailsKey,entry啥的就先不记录了。

http://www.lryc.cn/news/106446.html

相关文章:

  • 【MATLAB第63期】基于MATLAB的改进敏感性分析方法IPCC,拥挤距离与皮尔逊系数法结合实现回归与分类预测
  • AI 绘画Stable Diffusion 研究(二)sd模型ControlNet1.1 介绍与安装
  • 接口参数设计原则
  • 网络安全防护利器:SK5代理与IP代理的技术对比
  • IDEA删除本地git仓库、创建本地git仓库、关联其他仓库并上传
  • JavaEE简单示例——在使用Tomcat的时候可能出现的一些报错
  • webrtc的线程模型
  • 数据库备份还原-mysqldump、mydumper、xtrabackup、压缩
  • 【黑马程序员前端】JavaScript入门到精通--20230801
  • 100道Java多线程面试题(上)
  • web开发中的安全和防御入门——csp (content-security-policy内容安全策略)
  • 定了!全国2023下半年软考(高级、中级、初级)报名时间汇总
  • Linux下安装配置Redis
  • 深度学习(33)——CycleGAN(2)
  • WeakMap and WeakSet(弱映射和弱集合)
  • 【Vue3基础】组件保持存活、异步加载组件
  • 在 3ds Max 中使用相机映射将静止图像转换为实时素材
  • 如何使用GIL解决Python多线程性能瓶颈
  • k8s概念-深入pod
  • Web服务器实验案例
  • 预警 项目经验BUG
  • 基于RFID技术的猪舍门读卡器
  • 亚马逊店铺的回款周期是多久?
  • 剑指offer19.正则表达式
  • Mac Navicat 16试用脚本
  • 什么是 webpack?
  • #B. 费解的开关
  • Docker离线安装
  • React高阶学习(二)
  • C语言中的字符串输入操作详解