hashCode()和toString()

hashCode函数和toString函数也在Object类中,同样,所有的类都继承了这2个函数。

hashCode函数用于生成哈希码,没有参数,返回值为整型

hashCode()和toString()

hashCode()和toString()

hashCode()和toString()

把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;
}

hashCode()和toString()

toString函数用于把一个对象转换成字符串,了解对象内部情况,使程序拥有更好的可读性。复写toString函数:

public String toString(){
	String result = "age:" + age + "," + "name:" + name;
	return result;
}

hashCode()和toString()

上一篇:hashCode() 和equals() 区别和作用(转)


下一篇:字符编码ASCII、Unicode、GB