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

java中比较两个map是否相同

结论

对于所有继承于AbstractMap的map类(基本上jdk中的map都继承了),直接使用Map.equals()即可

源码解析

AbstractMap重写了equals方法,保证对两个相同内容的map调用equals比较结果为真,源码如下

public boolean equals(Object o) {

//同一对象相等

if (o == this)

return true;

//不是Map的子类不相等

if (!(o instanceof Map))

return false;

Map,> m = (Map,>) o;

//元素数量不同不相等

if (m.size() != size())

return false;

//遍历

try {

for (Entry e : entrySet()) {

K key = e.getKey();

V value = e.getValue();

//空值特殊处理

if (value == null) {

if (!(m.get(key) == null && m.containsKey(key)))

return false;

} else {

//调用元素的equals比较

if (!value.equals(m.get(key)))

return false;

}

}

} catch (ClassCastException unused) {

return false;

} catch (NullPointerException unused) {

return false;

}

return true;

}

复制代码

相关文章:

  • C/C++编程工具及实用小软件推荐
  • [项目管理-15]:项目执行中的三大管理者:项目活动管理、职能部门管理、产品架构设计。
  • Code For Better 谷歌开发者之声——基于改进 EfficientDet 的电网线路的识别与检测的设计实现
  • 【for lovelier】IDEA + LeetCode Editor 最佳实践
  • React Native 0.70 版本发布,Hermes 成为默认引擎
  • 【Java基础】时间日期类之Date类、SimplDateFormat类、Calendar类及二月天案例
  • 2023计算机毕业设计SSM最新选题之javaEE的仓库管理系统93c6b
  • 编程路学习书单推荐
  • 【OpenCV】基于cv2的图像阈值化处理【超详细的注释和解释】掌握基本操作
  • SpringBoot整合Canal、RabbitMQ监听数据变更记录
  • [HeMIM]Cl,[AeMIM]Br,[CeEIM]Cl,([HO-PECH-MIM]Cl,[HOOC-PECH-MIM]Cl改性酚醛树脂
  • 商业化广告--体系学习-- 6 -- 行业蓝图篇 -- 那些产品适合采用广告模式变现
  • 链路日志中追踪traceId
  • 2023计算机毕业设计SSM最新选题之javaJava班级信息管理系统x0w9c
  • 【Python炫技】使用zip函数,帮你写出更为Pythonic的代码!
  • 《剑指offer》分解让复杂问题更简单
  • Django 博客开发教程 16 - 统计文章阅读量
  • Django 博客开发教程 8 - 博客文章详情页
  • Java|序列化异常StreamCorruptedException的解决方法
  • Java基本数据类型之Number
  • java中具有继承关系的类及其对象初始化顺序
  • laravel5.5 视图共享数据
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • SQLServer插入数据
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue-cli在webpack的配置文件探究
  • Vue--数据传输
  • webpack+react项目初体验——记录我的webpack环境配置
  • 初识 beanstalkd
  • 精彩代码 vue.js
  • 蓝海存储开关机注意事项总结
  • 聊聊flink的TableFactory
  • 每天10道Java面试题,跟我走,offer有!
  • 前端学习笔记之观察者模式
  • 如何胜任知名企业的商业数据分析师?
  • 微服务入门【系列视频课程】
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 再次简单明了总结flex布局,一看就懂...
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 阿里云服务器如何修改远程端口?
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​马来语翻译中文去哪比较好?
  • #13 yum、编译安装与sed命令的使用
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (2020)Java后端开发----(面试题和笔试题)
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (八)Flask之app.route装饰器函数的参数
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (力扣)1314.矩阵区域和
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包