且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

张孝祥JAVA就业培训指南229页错误代码:关于HashTable我的纠正

更新时间:2022-06-09 06:23:30

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;

}



嘎嘎