读书人

怎么重写hashCode的方法

发布时间: 2012-10-26 10:30:58 作者: rapoo

如何重写hashCode的方法

为什么要重写hashCode方法?

?

我们应该先了解java判断两个对象是否相等的规则。

?

在java的集合中,判断两个对象是否相等的规则是:


首先,判断两个对象的hashCode是否相等

如果不相等,认为两个对象也不相等
如果相等,则判断两个对象用equals运算是否相等?
如果不相等,认为两个对象也不相等?
如果相等,认为两个对象相等

?

我们在equals方法中需要向下转型,效率很低,所以先判断hashCode方法可以提高效率

?

如何重写hashCode方法呢?

?

public class Test {private String s = null;private int id = 0;...public int hashCode() {int result = 17;result = 37 * result + s.hashCode();result = 37 * result + id;return result;}}?

读书人网 >编程

热点推荐