张孝祥JAVA就业培训指南229页错误代码:关于HashTable我的纠正
import java.util.*;
class MyKey
{
private String name;
private int age;
public MyKey(String name,int age)
{
this.name = name;
this.age = age;
}
public String toString()
{
return new String(name + "," + age);
}
public boolean equals(Object obj)
{
if(obj instanceof MyKey)
{
MyKey objTemp = (MyKey)obj;
if(name.equals(objTemp.name) && age==objTemp.age)
{
return true;
}
else
{
return false;
}
}
//假如obj不是MyKey类的实例对象,它就不可能与当前对象相等了
else
{
return false;
}
}
public int hashCode()
{
return name.hashCode() + age;
}
}
public class HashtableTest
{
public static void main(String[] args)
{
Hashtable numbers=new Hashtable();
numbers.put(new MyKey("zhangsan",18),new Integer(1));
numbers.put(new MyKey("lisi",15),new Integer(2));
numbers.put(new MyKey("wangwu",20),new Integer(3));
Enumeration e=numbers.keys();
while(e.hasMoreElements())
{
MyKey key=(MyKey)e.nextElement();
System.out.print(key.toString()+"=");
System.out.println(numbers.get(key).toString());
}
}
}
红色部分或者这么写
public boolean equals(Object obj)
{
MyKey mk=null;
if(obj instanceof MyKey)
mk=(MyKey)obj;
else
return false;
if(name.equals(this.name)&&age==this.age)
return true;
else
return false;
}
嘎嘎
最后更新:2017-04-02 22:16:32