在线等HashTable问题答案,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/09 10:38:41
public class Mykey {

public String toString() {

return name+","+age;
}
private String name =null;
private int age = 0;
public Mykey(String name,int age)
{
this.age=age;
this.name=name;
}
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;

}
else
{
return false;
}

}
public int hashCoded()
{
return name.hashCode()+age;
}
}

import java.util.*;
class HashTableTest{

public static void main(String[] args) {

Hashtable numbers=new Hashtable();

numbers.put(new Mykey("wanghui",20),new Integer(2));
numbers.put(new Mykey("Lisi",19),new Integer(3));

你的hashCode有问题

import java.util.Enumeration;
import java.util.Hashtable;

class Mykey {
public String toString() {
return name + "," + age;
}

private String name = null;
private int age = 0;

public Mykey(String name, int age) {
this.age = age;
this.name = name;
}

public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}

public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final Mykey other = (Mykey) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.e