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

自定义类使用ArrayList中的remove

Java中ArrayList对基础类型和字符串类型的删除操作,直接用remove方法即可。但是对于自定义的类来说,用remove方法删除不了,因为没有办法确定是否是要删除的对象。

image-20231120180004315

ArrayList中remove源码是:

public boolean remove(Object o) {if (o == null) {for (int index = 0; index < size; index++)if (elementData[index] == null) {//进行删除fastRemove(index);return true;}} else {for (int index = 0; index < size; index++)if (o.equals(elementData[index])) {//进行删除fastRemove(index);return true;}}return false;}

remove方法中,我们可以发现用到了equals方法进行判断是否两个对象相同。

因此,在自定义类中重写equals即可实现remove方法

重写equals需要判断是否是自身;this == obj,还要判断传入的对象是否是该自定义类的对象,obj instanceof OBJ,之后将传入的对象强制转为自定义类后进行判断即可。

    @Overridepublic boolean equals(Object obj) {// 是否是本身if(this == obj) {return true;}// 是否是该类实例if( !(obj  instanceof Pet)) {System.out.println("类型错误");return false;}// 强制转换为该类 进行判断Pet p = (Pet)obj;if(name.equals(p.getName()) && age == ((Pet) obj).getAge()&& color.equals(((Pet) obj).getColor())&& weight == ((Pet) obj).weight&& type == ((Pet) obj).getType()) {return true;}return false;}

[17-4:ArrayList的contains/remove对对象操作关联equals的详解-CSDN博客](https://blog.csdn.net/kingdelee/article/details/7722869?ops_request_misc=&request_id=&biz_id=102&utm_term=java arrayList remove equals&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-7722869.142v96pc_search_result_base3&spm=1018.2226.3001.4187)

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

相关文章:

  • 前端面试考核点【更持续新中】
  • linux-docker安装
  • 如何用html css js 画出曲线 或者斜线;
  • 【错误记录】Uncaught TypeError: m.nodeName.toLowerCase is not a function
  • 王颖奇:ONES.ai 上线,以及我的一些思考
  • 将AI技术与VR元宇宙相结合的整体解决方案
  • IPKISS Tutorials 3------绘制矩形版图
  • 为什么需要用高压放大器
  • 前端uniapp生成海报绘制canvas画布并且保存到相册【实战/带源码/最新】
  • 【算法专题】双指针
  • redis运维(七)基础通用命令
  • 搜索引擎ElasticSearch分布式搜索和分析引擎学习,SpringBoot整合ES个人心得
  • 云原生微服务架构图
  • 泊车功能专题介绍 ———— AVP系统技术要求之人机交互云平台
  • 精密云工程:智能激活业务速率 ——华为云11.11联合大促倒计时 仅剩3日
  • SpringBoot整合EasyExcel
  • 详解JS遍历数组的十八种方法
  • Python程序设计基础2
  • 域名服务器有哪些类型
  • 5.什么是Spring的依赖注入(DI)?IOC和DI的区别是什么
  • Python开源自动化工具Playwright安装及介绍
  • Nginx生产环境安装配置
  • 「项目阅读系列」go-gin-example star 6.5k!(1)
  • 基于轻量级yolov5的瓷砖瑕疵检测系统
  • Linux:系统基本信息扫描(2)
  • 什么是虚拟DOM(Virtual DOM),说说工作原理
  • Kafka的重要组件,谈谈流处理引擎Kafka Stream
  • 基于yolov5模型的200种鸟类检测识别分析系统
  • JavaScript的学习,就这一篇就OK了!(超详细)
  • hive sql 取当周周一 str_to_date(DATE_FORMAT(biz_date, ‘%Y%v‘), ‘%Y%v‘)