//重要:当类可以创建多个对象用的时候,实现comparable,覆盖hashCode和equals;
import java.util.*;
class MapTest
{
public static void main(String[] args)
{
HashMap<Person,String> hp=new HashMap<Person,String>();
hp.put(new Person("lisi1",11),"chongqing");
hp.put(new Person("lisi2",12),"tianjin");
hp.put(new Person("lisi3",13),"beijing");
//第一种方法
Set<Person> ks =hp.keySet();
Iterator<Person> it=ks.iterator();
while(it.hasNext())
{ Person p=it.next();
System.out.println(p+"="+hp.get(p));
}
System.out.println("Hello World!");
}
}
class Person implements Comparable<Person>//父的可实现子的,,,,实现comparable,
{
private String name;
private int age;
Person(String name,int age)
{
this.name = name;
this.age=age;
}
public int hashCode() //覆盖hashCode和equals;
{
return name.hashCode()+age*34;
}
public int compareTo(Person p)
{
int num=this.age-p.age;
if(num==0)
return this.name.compareTo(p.name);
return num;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Person))
throw new ClassCastException("类型错了");
Person p =(Person)obj;
return this.getName().equals(p.name)&&(this.getAge()==p.age);
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public String toString()
{
return name+":"+age;
}
}