帮忙看看程序错误。有关HASHTABLE的自定义键类。
程序意图:自定义一个类,用做哈斯表的键,该类重写了hashCode equals这两个方法,但编译不通过,并没得出预期结果。请各位帮忙看看,留意注释。
import java.util.*;
class Hashtest
{
public static void main(String args[])
{
Hashtable hs=new Hashtable();
hs.put(new Mykey("joe",12),new Integer(1));
hs.put(new Mykey("alber",33),new Integer(2));
hs.put(new Mykey("bush",24),new Integer(3));
Enumeration e=hs.keys();
while (e.hasMoreElements())
{
Mykey m=(Mykey)e.nextElement();
System.out.print(m.toString()+"=");
System.out.println((Integer)hs.get(m));
}
Mykey m1=new Mykey("alber",33);
System.out.println((Integer)hs.get(m1));
//这句没得出预期结果,只得出null,但上面通过Enumeration接口就能迭代出所有的值。为什么这句这样写就不能得出相应的值?
}
}
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)
//这句提示不能解释name age,但把上面的object换成Mykey就通过编译。为什么不能用父类呢?它不能动态找到NAME及AGE吗?
return true;
else
return false;
}
public int hashCode()
{
return name.hashCode()+age;
}
}
import java.util.*;
class Hashtest
{
public static void main(String args[])
{
Hashtable hs=new Hashtable();
hs.put(new Mykey("joe",12),new Integer(1));
hs.put(new Mykey("alber",33),new Integer(2));
hs.put(new Mykey("bush",24),new Integer(3));
Enumeration e=hs.keys();
while (e.hasMoreElements())
{
Mykey m=(Mykey)e.nextElement();
System.out.print(m.toString()+"=");
System.out.println((Integer)hs.get(m));
}
Mykey m1=new Mykey("alber",33);
System.out.println((Integer)hs.get(m1));
//这句没得出预期结果,只得出null,但上面通过Enumeration接口就能迭代出所有的值。为什么这句这样写就不能得出相应的值?
}
}
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)
//这句提示不能解释name age,但把上面的object换成Mykey就通过编译。为什么不能用父类呢?它不能动态找到NAME及AGE吗?
return true;
else
return false;
}
public int hashCode()
{
return name.hashCode()+age;
}
}
...全文
相关推荐
JAVA程序设计期末考试题.doc
异常处理机制**知识点概述:**Java的异常处理机制允许程序在运行时检测到错误,并通过捕获异常来处理这些错误。
文本挖掘(part1)--文本挖掘概述
学习笔记,仅供参考,有错必纠 文章目录文本挖掘概述什么是文本挖掘文本挖掘的意义文本挖掘的基本流程和任务基本流程常见的分析任务各个应用方向的举例文本挖掘的基本思路文本中所包含信息的层次NLP的基本思路原始语料数据化时需要考虑的工作 文本挖掘概述 什么是文本挖掘 所谓文本挖掘就是想办法对文本这种数据加以利用. 从大量文本数据中抽取隐含的,未知的,可能有用的信息,这也被称为自然语言处理(NLP). 文本挖掘的意义 人类文明的历史信息,90%以上都是以文本形式存在; 电子版的文本数量在不断增长,需要自动化
1、文本分类与文本挖掘技术综合概述
本文概述了文本分类与文本挖掘技术,包括文本数据挖掘的核心功能和应用领域。文章详细介绍了数据集和预处理步骤、特征提取、监督机器学习分类、模型评估等内容,并通过垃圾邮件检测的实验展示了不同分类算法的效果。此外,还探讨了文本挖掘技术在医疗、商业、法律等领域的广泛应用及其重要价值。
Java面试32问 面试常见问题
- **允许null键值**:HashMap允许一个null键和多个null值,而Hashtable不允许任何键或值为null。
JAVA程序员面试32问
#### HashMap与Hashtable的区别- **HashMap**允许键和值为null,线程不安全,性能更高。 - **Hashtable**不允许键或值为null,线程安全,但性能较低。


Java SE

