package cn.itcast.bean; public class Person { private String name; private int age; public Person() { super(); } public Person(String name, int age) { super(); 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 int compareTo(Object o) { // // if(!(o instanceof Person)) // throw new ClassCastException("类型错误"); // Person p = (Person)o; // int temp=this.age-p.age; // return temp==0?this.name.compareTo(p.name):temp; // } }
====================================分割线===================================
package cn.itcast.bean; public class Student extends Person{ public Student(String name,int age){ super(name,age); } }
====================================分割线===================================
package cn.itcast.comparator;
import java.util.Comparator;
import cn.itcast.bean.Person;
public class ComparatorByName implements Comparator<Object>{
@Override
public int compare(Object o1, Object o2) {
Person p1=(Person)o1;
Person p2=(Person)o2;
int temp=p1.getName().compareTo(p2.getName());
return temp==0?p1.getAge()-p2.getAge():temp;
}
}
====================================分割线===================================
package cn.itcast.treemap.demo;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import cn.itcast.bean.Student;
import cn.itcast.comparator.ComparatorByName;
public class TreeMapDemo {
public static void main(String[] args) {
TreeMap<Student, String> tm = new TreeMap<Student, String>(new ComparatorByName());
tm.put(new Student("lisi",38), "北京");
tm.put(new Student("zhaoliu", 24), "上海");
tm.put(new Student("xiaoqiang", 31), "沈阳");
tm.put(new Student("wangcai", 28), "大连");
tm.put(new Student("zhaoliu", 24), "铁岭");
Set<Map.Entry<Student, String>> s1 = tm.entrySet();
Iterator<Map.Entry<Student, String>> it = s1.iterator();
while (it.hasNext()) {
Map.Entry<Student, String> me = it.next();
Student key = me.getKey();
String value = me.getValue();
System.out.println(key.getName() + ":" + key.getAge() + "---"
+ value);
}
}
}