对象的比较及hashCode、equals方法的使用
来源:互联网 发布:淘宝客服如何建议 编辑:程序博客网 时间:2024/06/03 17:08
如何进行对象的值的比较呢?如String类型的变量,是靠调用equals方法来比较的,而其它的类似数组或普通的对象直接调用equals方法一般是不可以的,这是因为String类型的变量通过调用equals方法来比较变量是因为String类覆盖了Object的HashCode方法和equals方法。正如String调用equals方法可以比较String对象变量的值是否相等,一般的对象也可以通过覆盖Object类的方法来达到同样的目的的。如下面代码 所示:
import java.util.HashMap;import java.util.Map;/* * @author mnmlist * @date 8/18/2015 * @description the basic usage of hashCode and equals method */class Stu{String sno;String sname;public Stu(String sno,String sname){this.sno=sno;this.sname=sname;}public String getSno(){return sno;}public boolean equals(Object obj){if(!(obj instanceof Stu))return false;if(obj==this)return true;return this.sno.equals(((Stu)obj).getSno());}public int hashCode(){return (sno+sname).hashCode();}}public class HashcodeDemo{public static void main(String[] args){// TODO Auto-generated method stubMap<Stu, Integer>map=new HashMap<>();Stu st1=new Stu("123", "Sting");Stu st2=new Stu("234", "mnmlist");Stu st3=new Stu("345", "Tony");map.put(st1, 1);map.put(st2,2);map.put(st3, 3);Stu stu=new Stu("123", "Sting");System.out.println(map.containsKey(stu));}}如上述代码所示,通过覆盖hashCode方法和equals方法可以实现对对象的比较
结果:
true
0 0
- 对象的比较及hashCode、equals方法的使用
- 对象的比较,排序,重写equals(),compareTo(),hashCode()方法
- 重写equals()和hashCode()方法,用于比较对象的内容
- [Java]hashCode和equals方法的比较
- Object对象的通用方法-equals、hashCode
- hashCode与对象equals之间的使用
- JAVA中自定义对象比较时重写equals()方法的同时要重写hashcode()方法
- java的equals()和hashcode()方法使用
- 两个对象用equals方法比较为true,它们的Hashcode值相同吗?
- Java中hashCode和equals方法的比较
- List集合去除重复对象及equals()、hashCode()方法的作用
- List集合去除重复对象及equals()、hashCode()方法的作用
- List集合去除重复对象及equals()、hashCode()方法的作用
- List集合去除重复对象及equals()、hashCode()方法的作用
- 重写对象的equals(Object)方法,同时重写Hashcode()方法
- Object的equals()及hashCode()(
- 解析Java对象的equals()和hashCode()的使用
- 解析Java对象的equals()和hashCode()的使用
- eclipse + Felix 开发环境搭建 bundle 开发与调试
- c# 连接本地的sdf数据库文件
- ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
- 协方差矩阵
- nginx部署
- 对象的比较及hashCode、equals方法的使用
- Oracle expdp/impdp导出导入命令及数据库备份(转)
- 算法竞赛入门经典:第八章 高效算法设计 8.2归并排序
- 淘宝取代分布式事务的方案
- 串口之ReadFile、WriteFile函数详解
- 欢迎使用CSDN-markdown编辑器
- 题目1179:阶乘
- 切换摄像机:一个键控制一个摄像机
- 类的构造函数、拷贝构造函数、赋值运算符和析构函数