class Student
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int hashCode()
{
return num*name.hashCode();
}
public boolean equals(Object o)
{
Student s=Student(o);
return num==s.num && name equals(name)
}
public String toString()
{
return num+":"+name;
}
}
num*name代表什么啊
{
int num;
String name;
Student(int num,String name)
{
this.num=num;
this.name=name;
}
public int hashCode()
{
return num*name.hashCode();
}
public boolean equals(Object o)
{
Student s=Student(o);
return num==s.num && name equals(name)
}
public String toString()
{
return num+":"+name;
}
}
num*name代表什么啊
而Student的散列值由其num和name两个成员中的信息结合而成
结合的办法比较简单直观的就是把散列值相乘。
num*(name.hashCode())另外程序有错
改动如下
public boolean equals(Object o)
{
Student s=(Student)o;
return num==s.num && name equals(s.name)
}