当前页面: 开发资料首页 → J2SE 专题 → 求救: java 使用关键字类从Hashtable中取值(课本中的错误?)
求救: java 使用关键字类从Hashtable中取值(课本中的错误?)
摘要: 求救: java 使用关键字类从Hashtable中取值(课本中的错误?)
谁能帮我修改下面的代码,达到:
使用Mykey类作为关键字类,从Hashtable中取出所有关键字的集合和取出所有值的集合?(我用的是JDK5.0.9,要考虑到泛型.)
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(name.equals(obj.name) && age==obj.age)
return true;
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("zhang san",18),new Integer(11));
numbers.put(new Mykey("lisi",15),new Integer(22));
numbers.put(new Mykey("wangwu",12),new Integer(33));
Enumeration e=numbers.keys();
while(e.hasMoreElements())
{
Mykey key=(Mykey)e.nextElement();
System.out.println(key.toString()+"=");
System.out.println(numbers.get(key).toString());
}
}
}
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(Mykey obj)
{
if(name.equals(obj.name) && age==obj.age)
return true;
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("zhang san",18),new Integer(11));
numbers.put(new Mykey("lisi",15),new Integer(22));
numbers.put(new Mykey("wangwu",12),new Integer(33));
Enumeration e=numbers.keys();
while(e.hasMoreElements())
{
Mykey key=(Mykey)e.nextElement();
System.out.println(key.toString()+"=");
System.out.println(numbers.get(key).toString());
}
}
}
下面是执行的结果:
lisi,15=
22
zhang san,18=
11
wangwu,12=
33
妙! 原来是这样呀,我真是傻到家了~~~~老犯这种愚蠢的错误.
谢谢你的帮助!