package com.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
/**
* 每一个学生都有对应的归属地
* 姓名 年龄
* 注意:姓名、年龄相同为同一个学生
* 保证学生的唯一性:
*
*
*/
class Student implements Comparable<Student>{
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return name +" "+ age;
}
@Override
public int hashCode() {
return name.hashCode()+age*34;
}
@Override
public boolean equals(Object obj) {
if(!(obj instanceof Student)){
throw new ClassCastException("类型");
}
Student s = (Student) obj;
return this.name.equals(s.name )&& this.age ==s.age;
}
@Override
public int compareTo(Student o) {
//根据姓名排序
int num =new Integer(this.age).compareTo(new Integer(o.age));
if(num ==0)
return this.name.compareTo(o.name);
return num;
}
}
public class MapTest {
public static void main(String[] args) {
//Map<Student, String> hm = new HashMap<Student, String>();
TreeMap<Student, String> hm = new TreeMap<Student, String>();
hm.put(new Student("lisi1", 21), "shanghai");
hm.put(new Student("lisi1", 21), "shanghai");
hm.put(new Student("lisi2", 24), "beijing");
hm.put(new Student("lisi3", 23), "guangzhou");
hm.put(new Student("lisi4", 20), "wuhan");
Iterator<Student> it = hm.keySet().iterator();
while(it.hasNext()){
Student stu = it.next();
String addr = hm.get(stu);
System.out.println(stu+ " "+ addr);
}
}
}