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

ArrayList的contains问题

     ArrayList的contains判断居然不准确,根本不是要的结果。关键还是想当然了。

    ArrayList.contains(Object o) 的工作原理是:
遍历列表中的每个元素,通过调用 element.equals(o) 来判断是否存在匹配元素。
如果元素类没有重写 equals(),会默认使用 Object 类的 equals() 实现,而 Object.equals() 本质是比较两个对象的内存地址(即 == 运算)。即使两个对象的内容完全相同(字段值一致),只要是不同的内存对象,contains() 也会返回 false,造成 "判断不准确" 的错觉!

所以核心的关键是要重新equals(),在里面根据关键字来判断(以角色对象为例):

@Override
public boolean equals(Object o) {if (this == o) return true; // 同一对象直接返回trueif (o == null || getClass() != o.getClass()) return false; // 类型不同返回falseRoleInfoBO role = (RoleInfoBO) o;return this.roleId.equals(role.getRoleId()); // 比较字段
}

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

相关文章:

  • 大模拟 Major
  • 扫地机器人(2025蓝桥杯省A组 H题)
  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数),视频保存在指定位置
  • LeetCode 刷题【43. 字符串相乘】
  • 安卓11 12系统修改定制化_____修改运营商版本安装特定应用时的默认规则
  • 美国服务器环境下Windows容器工作负载基于指标的自动扩缩
  • 基于 LoRA的广义知识蒸馏(GKD)训练
  • 【总结型】c语言中的位运算
  • Java -- 泛型-自定义泛型
  • 在职老D渗透日记day18:sqli-labs靶场通关(第26关)get报错注入 过滤or和and基础上又过滤了空格和注释符 ‘闭合 手动注入
  • Qt 动态属性(Dynamic Property)详解
  • 牛 CDR3 单抗:抗病毒领域的 “纳米级精准导弹”
  • 系统思考—啤酒游戏经营决策沙盘认证
  • 第二十五天:构造函数/析构函数/拷贝构造
  • SpringBoot 整合 Langchain4j:系统提示词与用户提示词实战详解
  • 小白学习《PCI Express体系结构导读》——第Ⅰ篇第1章PCI总线的基本知识
  • 《A Practical Guide to Building Agents》文档学习
  • Nginx蜘蛛请求智能分流:精准识别爬虫并转发SEO渲染服务
  • 23. CommonJS 和 ES6 Module 区别
  • 第6问 数据分析领域主要的岗位有哪些?
  • autofit.js: 自动调整HTML元素大小的JavaScript库
  • Java设计模式详细解读
  • 安卓四大组件基础题
  • AI搜索:大模型商业落地的“第一束光”,照见了什么?
  • 【数据结构】深入理解单链表与通讯录项目实现
  • aws(学习笔记第五十一课) ECS集中练习(3)
  • MySQL锁机制:悲观锁VS乐观锁详解
  • 初识c语言————宏定义和调用
  • C语言零基础第18讲:自定义类型—结构体
  • 新手向:GitCode疑难问题诊疗