* 使用TreeMap集合进行排序
* TreeMap<Student,String> 按照学生的年龄从小到大排序
*
* 构造方法
* TreeMap():空参构造
* 自然排序---->Comparable<T>
* public int compareTo(T t)
* 构造方法:有参构造
* TreeMap(Comparator<T> comparator)
* 选择器排序---->Comparator<T>
* public int compares(T t1,T t2)
import java.util.Comparator;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapDemo {
public static void main(String[] args) {
//创建TreeMap集合对象
TreeMap<Student, String> tm = new TreeMap<Student,String>() ;
//创建学生对象
Student s1 = new Student("liushishi",20) ;
Student s2 = new Student("gaoyuanyuan",25) ;
Student s3 = new Student("zhangsan",22) ;
Student s4 = new Student("wuqilong",20) ;
Student s5 = new Student("liushishi",20) ;
Student s6 = new Student("gaoyuanyuan",39) ;
Student s7 = new Student("zhaoyouting",25) ;
Student s8 = new Student("dengchao",27) ;
Student s9 = new Student("dengchao",27) ;
//添加元素
tm.put(s1,"001") ;
tm.put(s2,"002") ;
tm.put(s3,"003") ;
tm.put(s4,"004") ;
tm.put(s5,"005") ;
tm.put(s6,"005") ;
tm.put(s7,"009") ;
tm.put(s8,"006") ;
tm.put(s9,"006") ;
//获取所有的键
Set<Student> set = tm.keySet() ;
for(Student key :set) {
//通过键获取值
String value = tm.get(key) ;
System.out.println(key.getName()+"---"+key.getAge()+"---"
+value);
}
}
}
public class Student implements Comparable<Student>{
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(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 String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
//按照学生的年龄从大到小排序
@Override
public int compareTo(Student s) {
int num=s.age-this.age;
//年龄一样,比较姓名内容是否相同
int num2=(num==0)?(this.name.compareTo(s.name)):num;
return num2;
}
}