hashCode函数和toString函数也在Object类中,同样,所有的类都继承了这2个函数。
hashCode函数用于生成哈希码,没有参数,返回值为整型
把u的值作为键存入map中,使用get方法传入的键值和u的值是一样的,但结果却为null。因为map并不是根据传入的键去进行一一比较来配对,而是通过计算对象的hashcode来判断在HashMap中有没有存在相应的值。此处调用的是默认的hashCode方法,对于内存中不同的对象生成的哈希码是不一样的,但从逻辑上来说,如果两个对象使用equals函数相比较是相等的,那么这两个对象调用hashCode生成的哈希码应该是相等的,根据这一原则来复写hashCode函数。
public int hashCode(){ int result =17; result = 31 * result +age; result = 31 * result +name.hashCode(); return result; }
toString函数用于把一个对象转换成字符串,了解对象内部情况,使程序拥有更好的可读性。复写toString函数:
public String toString(){ String result = "age:" + age + "," + "name:" + name; return result; }