public class TeacherComparator implements Comparator<Teacher> { @Override public int compare(Teacher o1, Teacher o2) { // TODO Auto-generated method stub if (o1.getAge() > o2.getAge()) return -1; // 由高到低 else if (o1.getAge() < o2.getAge()) return 1; else { if (o1.getName() > o2.getName()) return 1; // 由低到高 else if (o1.getAge() < o2.getAge()) return -1; else return 0; } } } public class Teacher { private int name; private int age; public Teacher() { } public Teacher(int name, int age) { this.name = name; this.age = age; } public int getName() { return name; } public void setName(int name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static void main(String[] args) { Set<Teacher> set = new TreeSet<Teacher>(new TeacherComparator()); set.add(new Teacher(10, 15)); set.add(new Teacher(30, 15)); set.add(new Teacher(20, 30)); set.add(new Teacher(10, 20)); set.add(new Teacher(80, 20)); Iterator<Teacher> it = set.iterator(); while (it.hasNext()) { Teacher customer = it.next(); System.out.println(customer.getName() + " " + customer.getAge()); } } } ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 20 30 10 20 80 20 10 15 30 15