192.168.1.145_20200909-郎航
问题
public int hashCode() {
// 使用从JDK 1.7 开始提供的 Objects类中的 hash方法根据指定的字段来求哈希码值
return Objects.hash( name , price );
}
@Override
public boolean equals(Object o) {
if( o instanceof Product ) {
Product p = (Product)o;
System.out.println( "equals" );
return name.equals( p.name ) && price == p.price ;
}
return false;
}
为什么重写equals()方法比较还要写hasCode()方法
解决
当equals方法被重写时,通常有必要重写 hashCode
方法,以维护 hashCode
方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
吐槽
天气变化挺大的。
近期评论