HashCode和equals方法重写
来源:互联网 发布:uva 知乎 编辑:程序博客网 时间:2024/05/16 12:31
hashCode()和equals()的用法
- equals()方法在object类中定义如下:
public boolean equals(Object obj) { return (this == obj); }
- hashCode()方法被用来获取给定对象的唯一整数。这个整数被用来确定对象被存储在HashTable类似的结构中的位置。默认的,Object类的hashCode()方法返回这个对象存储的内存地址的编号。
- 如果重写equals()方法必须要重写hashCode()方法
public int hashCode() { final int PRIME = 31; int result = 1; result = PRIME * result + getId(); return result; }
使用Apache Commons Lang包重写hashCode()和equals()
*
import org.apache.commons.lang3.builder.EqualsBuilder;import org.apache.commons.lang3.builder.HashCodeBuilder;public class Employee{ private Integer id; private String firstname; private String lastName; private String department; set get方法
@Override public int hashCode() { final int PRIME = 31; return new HashCodeBuilder(getId()%2==0?getId()+1:getId(), PRIME). toHashCode(); }@Override public boolean equals(Object o) { if (o == null) return false; if (o == this) return true; if (o.getClass() != getClass()) return false; Employee e = (Employee) o; return new EqualsBuilder(). append(getId(), e.getId()). isEquals(); } }
细节
- 尽量保证使用对象的同一个属性来生成hashCode()和equals()两个方法。
- eqauls方法必须保证一致(如果对象没有被修改,equals应该返回相同的值)
- 任何时候只要a.equals(b),那么a.hashCode()必须和b.hashCode()相等。
阅读全文
0 0
- 重写hashCode和equals方法
- 重写equals和hashCode方法
- 重写hashCode和equals方法
- 重写hashcode和equals方法
- 重写equals() 和 hashCode()方法
- 重写hashCode()和equals()方法
- 重写equals和hashcode方法
- HashCode和equals方法重写
- 重写equals() 和 hashCode()方法
- 重写hashCode()方法和重写equals()方法
- 重写equals()方法和hashcode()方法
- 重写equals方法和hashcode方法
- HashMap中重写hashCode和equals方法
- java重写equals和hashCode方法
- 为什么要重写hashcode和equals方法
- 重写object中的hashcode和equals方法
- 重写hashCode()和equals()方法的必要
- Hashtable记录,重写equals和 hashcode方法
- iOS二维码扫描
- 关于音乐播放器锁屏播放,后台播放,封面显示等
- 文章标题
- JAVA分支结构
- C语言程序开发宝典-数据结构
- HashCode和equals方法重写
- 数据库系统概念(机械工业出版社,第六版)复习——第八章:关系数据库设计
- 使用eclipse maven插件实现上传和下载jar包
- 包装类
- android设计模式-责任链模式与View Touch Event分发
- SDUT-1523 矩阵输出
- Fluent NHibernate的初学者
- git图形化工具GitKraken的使用——分支的创建与合并
- 数据库系统概念(机械工业出版社,第六版)复习——第十章:数据存储和数据存取