//需要重写equals和hashCode方法
package joeho.net.csdn.blog;
class MyKey {
private int age = 0;
private String name = "";
/**
* Method equals
*
*
* @return
*
*/
public MyKey(String name,int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
if(obj instanceof MyKey){
MyKey objMy = (MyKey)obj;
if(name.equals(objMy.name)&& age==objMy.age){
return true;
}else{
return false;
}
}
else{
return false;
}
}
/**
* Method hashCode
*
*
* @return
*
*/
public int hashCode() {
return name.hashCode()+age;
}
/**
* Method toString
*
*
* @return
*
*/
public String toString() {
// TODO: Add your code here
return name+","+age;
}
}
import java.util.*;
public class HashTableTest {
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
Hashtable hash = new Hashtable();
hash.put(new MyKey("zhangsan",15),new Integer(1));
hash.put(new MyKey("lisi",55),new Integer(2));
hash.put(new MyKey("wangwu",18),new Integer(3));
Enumeration em = hash.keys();
while(em.hasMoreElements())
{
MyKey key=(MyKey)em.nextElement();
System.out.print(key+"=");
System.out.println(hash.get(key));
}
}
}
Java中重写equals与hashCode方法
本文介绍了一个Java示例程序,展示了如何为自定义类MyKey正确地重写equals和hashCode方法,并通过一个简单的Hashtable应用实例演示了其用法。
9万+

被折叠的 条评论
为什么被折叠?



