【原创】关于java对象需要重写equals方法,hashcode方法,toString方法 ,compareto()方法的说明
2024-10-19 22:19:04
在项目开发中,我们都有这样的经历,就是在新增表时,会相应的增加java类,在java类中都存在常见的几个方法,包括:equals(),hashcode(),toString() ,compareto()这四个方法,对于刚刚接触java的初学者来说,对于这块可以没有更深入的了解,只是单纯意义上的复制粘贴,并没有很好的去了解。现在借用这个时间给大家说说这几个方法作用。
equals:
比较两个对象相等时使用(需要配合Hashcode一起使用,在后边再进行详细解释)
hashcode:
重写hashcode方法的主要目的就是让Hashtable/HashSet/HashMap等集合正常工作,也就是说他们都是基于hashcode进行地址判断的,如果重写equals而不重写hashcode,对于HashMap来说存入2个相同的对象保存一个key,却对应2个值,而取的时候是无法取出值,其它的集合类也是类似,为了不至于混乱出错,所以以上集合类重写equals时候必须重写hashcode方法。是不是其它的类也是的呢?我认为不完全是,因为普通类重新hashcode意义不大,不写也不会出现编译错误。
toString:
因为所有类都是继承自Object,Object类具有一个toString()方法,你创建的每个类都会继承该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需求,需要覆盖这个方法。最终就是为了我们显示的时候方便。
Compareto:
很显然,是为了比较两个对象使用,JAVA中的比较器接口Comparable用于数组对象的排序,要使用此功能,必须让类继承自Comparable接口,重写compareTo。
最新文章
- ora-01652无法通过128(在表空间temp中)扩展temp段
- jeechart
- Redis漏洞?阿里云被攻击!
- PHP+jQuery 长文章分页类 ( 支持 url / ajax 分页方式 )
- oracle授权另外一个用户访问自己创建的数据对象
- [Lua]基于cc.load('mvc') .ViewBase索引资源方案
- u盘安装ubuntu10.04 、11.04 server
- 数组for循环查找范围
- (DP) 关于最优三角剖分
- Spark环境准备
- vertical-align垂直对齐用法
- Kettle系列: 马进举开源的Kettle通用插件 KettleEasyExpand
- golang中GOPATH的简单理解
- BZOJ1296 [SCOI2009]粉刷匠 动态规划 分组背包
- ASP.NET 构建高性能网站 第5篇
- centos上Jenkins搭建
- PHP 执行系统外部命令的方法 system() exec()
- PHP打印日期
- API 接口设计工具 --Swagger
- Shell 语句
热门文章
- python深浅拷贝&;垃圾回收&;上下文管理(with语句)
- No compiler is provided in this environment报错解决方案
- 大数据软件安装之Flume(日志采集)
- Angularjs优点
- 数据库安装和基本sql语句
- 用java分组查elasticsearch
- 李宏毅老师机器学习课程笔记_ML Lecture 1: ML Lecture 1: Regression - Demo
- test命令的使用以及判断语法
- Building Applications with Force.com and VisualForce(六):Designing Applications for Multiple users: Accommodating Multiple Users in your App
- 将Python执行代码打包成exe可执行文件