Java类中的equals方法和hashCode方法
2015-01-18 22:46
239 查看
实现equals方法的标准方式,最佳实践方式
在实现完equals方法后最好也实现hashCode方法,如果两个对象相等,则它们产生的hash码也要相等,hashCode方法中使用的字段要与equals方法中的字段相同。
public boolean equals(Person p) { if(p == null){ return false; } if(p == this){ return true; } if(!(p instanceof Person)){ return false; } if(p.lastName.equals(this.lastName) && p.firstName.equals(this.firstName)){ return true; }else{ return false; } }
在实现完equals方法后最好也实现hashCode方法,如果两个对象相等,则它们产生的hash码也要相等,hashCode方法中使用的字段要与equals方法中的字段相同。
public int hashCode(){ int result = 17; result *= firstName.hashCode()*37; result *= lastName.hashCode()*37; return result; }
相关文章推荐
- JAVA类中的equals()方法和hashCode()方法的重写
- java.lang.Object的equals()和hashCode()方法小结
- java中的hashcode()和equals()方法详解
- java equals与hashCode 两个重要方法的重写
- JAVA中的equals()和hashCode()方法
- Java中重写Object类的equals方法和hashcode方法的注意事项
- Java中的hashcode()和equals()方法详解
- Java中的equals方法与hashCode方法解析
- JAVA中的equals()和hashCode()方法(经典)
- java 重写类的equals方法和hashcode方法
- 一种常见的Java编程错误:没有同时定义equals()和hashCode()方法
- java中重写Object类的equals方法和Hashcode方法的注意事项
- Java中equals()与hashCode()方法完全解惑
- Java软件低级错误: 定义equals方法的同时也要定义hashCode方法
- java对象通用方法之覆盖equals时请遵守通用约定、覆盖equals时总要覆盖hashCode、始终要覆盖toString、考虑实现Comparable接口
- Java中的equals()和hashCode()方法
- Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法
- Java Class 中hashCode()和equals方法
- JAVA中重写equals()方法为什么要重写hashcode()方法说明
- java中的hashcode()和equals()方法详解