mysql equal函数_Java中equal()函数与hashcode()函数使用分析

java中Object对象重写equal()函数与hashcode()函数,先要明白equal()函数对于任何非空引用值仅当两个值引用同一个对象时此方法才返回true,此处不解释如果不明白可以在本网站搜索equal与==的区别。重写时必须保证hashcode()函数的常规规范,该规范声明相等对象必须具有相同的哈希码。

如何实现hashcode哈希码相等,具体代码如下:

1)当obj1.equals(obj2)为true时,obj1.hashCode() == obj2.hashCode()必须为true

2)当obj1.hashCode() == obj2.hashCode()为false时,obj1.equals(obj2)必须为false

代码演示,具体代码如下:package com.yoodb;

public class Number {

private String a;

public String getA() {

return a;

}

public void setA(String a) {

this.a = a;

}

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((a == null) ? 0 : a.hashCode());

return result;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Number other = (Number) obj;

if (a == null) {

if (other.a != null)

return false;

} else if (!a.equals(other.a))

return false;

return true;

}

public Number(String a) {

super();

this.a = a;

}

}

总结:

hashcode()函数是用于散列数据的快速存取,如利用HashSet/HashMap/Hashtable类来存储数据时,都是根据存储对象的hashcode值来进行判断是否相同的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值