张孝祥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;

}

嘎嘎

时间: 2024-09-18 05:18:03

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

新鲜出炉关于2017年Java就业前景分析

权威统计机构统计在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%.JAVA工程师的薪水相对较高,通常来说,具有3~5年开发经验的工程师,拥有年薪10万元是很正常的一个薪酬水平. 全球有25亿Java器件运行着Java,450多万Java开发者活跃在地球的每个角落数以千万计的Web用户每次上网都亲历Java的威力.今天,Java运行在7.08亿手机.10亿智能卡和7亿PC机上并为28款可兼容的应用服务器提供了功能强大的平台.越来越多的企业因为使用了Java而提高了

JAVA基础培训(11),方法的Override

Override, 主要是因为父类的功能无法满足需求,我们又不能直接修改父类的情况下 ,我们通过子类重写,来实现新的功能. package Lession11; import java.util.ArrayList; import java.util.List; /** * 老紫竹JAVA基础培训(11),方法的Override.<br> * * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession11 { public s

JAVA基础培训(10),方法的Overload介绍

今天在项目里做事,中午休息时间,补上这个教程吧.这次我们看看Overload 的内容 . 测试代码 package lession10; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; /** * 老紫竹JAVA基础培训(10),方法的Overload介绍.<br> * 匹配方式为最特殊匹配,或者叫最准确匹配<br> * 如果发现多个都有相同的匹配度,则编译报错. * *

JAVA基础培训(9),控制台键盘输入(System.in)

从键盘输入是一个很重要的功能,这里给出了个人推荐的方式,用Scanner读取输入数 据 package lession9; import java.io.InputStream; import java.util.Scanner; /** * 老紫竹JAVA基础培训(9),控制台键盘输入(System.in). * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession9 { public static void main(St

JAVA基础培训(8),认识接口

这讲我们来重点熟悉接口的使用,包括接口的声明,继承,属性的定义以及类的实现 等. 最终的目录结构 先看相关的代码 lession8/Lession8.java package lession8; import lession8.otherpackage.InterfaceOtherPackagePublic; /** * 老紫竹JAVA基础培训(8),认识接口.<br> * * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Less

JAVA基础培训(7),构造器的使用

这里主要看类的构造器的情况,默认的,无参数的,有参数的,有不同参数类型的, 有多个参数的等各种情况. package lession7; /** * 老紫竹JAVA基础培训(7),构造器的使用.<br> * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession7 { public static void main(String[] args) { new class1(); // 使用了系统自动提供的无参数构造器 new c

JAVA基础培训(6),For循环语句的使用

在所有的循环中,最常用的就是for了,另外2个 while和do..while我基本不用.所以 我这里就把for循环重点介绍一下. 源代码 package lession6; /** * 老紫竹JAVA基础培训(6),For循环语句的使用.<br> * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession6 { /** * for循环有三部分用分号分割<br> * 第一部分是初始的数据<br> * 中

JAVA基础培训(5),IF语句的使用

这一小节,我们看看if语句的用法,最主要是相等的判断.对于数字还有大于小于的 判断. package lession5; /** * 老紫竹JAVA基础培训(5),IF语句的使用.<br> * * @author 老紫竹 JAVA世纪网(java2000.net) * */ public class Lession5 { public static void main(String[] args) { // ---------------------------------------- //

JAVA基础培训(4) 熟悉属性/变量的访问权限

和前一个教程一样,我们也建了一个子目录,用来存放不同package的类 属性分为2种, 1 类实例的属性,属于某个类的实例所有,必须通过实例访问 2 类级的静态属性,属于类和所有实例所有,可通过类或者实例都可以访问 属性的权限分为 1 private 私有属性 2 [default] 默认属性,也就是啥都不写的那种,运行同一个package的访问 3 protected 被保护的属性,允许同一个package的访问,以及子类访问 4 public 公开的属性,可以被任何类访问 先看主类 less