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代表什么啊 

解决方案 »

  1.   

    name.hashCode()是name 的散列值
    而Student的散列值由其num和name两个成员中的信息结合而成
    结合的办法比较简单直观的就是把散列值相乘。
      

  2.   

    num*name什么都不是你可以这样理解
    num*(name.hashCode())另外程序有错
    改动如下
    public boolean equals(Object o) 

    Student s=(Student)o; 
    return num==s.num && name equals(s.name)