如何重写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;}}?