java中对象相等(equal)
来源:互联网 发布:海洋动态壁纸软件 编辑:程序博客网 时间:2024/06/15 05:11
java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法,今天就来介绍一些这两个方法的作用。
equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复。
这里我们首先要明白一个问题:
equals()相等的两个对象,hashcode()一定相等,equals()不相等的两个对象,却并不能证明他们的hashcode()不相等。换句话说,equals()方法不相等的两个对象,hashCode()有可能相等。(我的理解是由于哈希码在生成的时候产生冲突造成的)
在这里hashCode就好比字典里每个字的索引,equals()好比比较的是字典里同一个字下的不同词语。就好像在字典里查“自”这个字下的两个词语“自己”、“自发”,如果用equals()判断查询的词语相等那么就是同一个词语,比如equals()比较的两个词语都是“自己”,那么此时hashCode()方法得到的值也肯定相等;如果用equals()方法比较的是“自己”和“自发”这两个词语,那么得到结果是不想等,但是这两个词都属于“自”这个字下的词语所以在查索引时相同,即:hashCode()相同。如果用equals()比较的是“自己”和“他们”这两个词语的话那么得到的结果也是不同的,此时hashCode() 得到也是不同的。
反过来:hashcode()不等,一定能推出equals()也不等;hashcode()相等,equals()可能相等,也可能不等。在object类中,hashcode()方法是本地方法,返回的是对象的地址值,而object类中的equals()方法比较的也是两个对象的地址值,如果equals()相等,说明两个对象地址值也相等,当然hashcode() 也就相等了;
- java中对象相等(equal)
- Java中为满足两对象根据类的属性值相等 从而对象equal hashcode相等,需要重写equal hashcde
- java 中 equals() 相等的两个对象,hashcode() 一定相等
- java 中 equals() 相等的两个对象,hashcode() 一定相等
- java中检查对象是否相等
- java中判断两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- 判断java中两个对象是否相等
- java对象判断相等
- 学习体会:在JAVA中如何判断两个对象是否相等
- java中对象的复制与相等判断
- java中判断类对象是否相等的方法
- java中判断一个类的对象是否相等问题
- Common Lisp-对象相等性 函数或谓词包括:eq、eql、equal、equalp、=
- Java常见问题之引用相等性和对象相等性
- java中字符串相等问题
- Linux系统中安装和简易配置redis
- 【LeetCode】【Python】8. String to Integer (atoi)
- 表格如何去除边框以及分割线
- Qt中IEEE754格式转换为浮点数方法
- Android Annotation注解使用说明
- java中对象相等(equal)
- 调用微信js-sdk(‘分享给朋友‘为例)
- 面向对象与C++程序设计-向量和迭代器学习笔记
- POJ 3270 Cow Sorting (置换)
- Quick Sort
- 关于jsp表单提交中action所指向Servlet路径问题的总结
- 位图法处理海量数据常见使用
- 无法使用前导 .. 在顶级目录上退出
- 第七章 7-4 使用子窗口