重写equals和hashCode
Posted 宋发准
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重写equals和hashCode相关的知识,希望对你有一定的参考价值。
package com.fz.song.hashCode; import java.awt.*; /** * Created by sfz on 2017/9/6. */ public class Cat { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } /** * 重写equals方法:重写了equals,就一定要重写hashCode方法.切记! * * @param obj * @return */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof Cat)) { return false; } Cat obj1 = (Cat) obj; return obj1.getName().equals(this.getName()) && obj1.getAge() == this.getAge(); } /** * 重写hashCode方法. * * @return */ @Override public int hashCode() { int result = 17; result = result * 31 + name.hashCode(); result = result * 31 + age; return result; } }
以上是关于重写equals和hashCode的主要内容,如果未能解决你的问题,请参考以下文章
JAVA中重写equals方法为啥要重写hashcode方法说明