我有这样一段代码 麻烦帮我看看public class Test {
/** * @param args */ //Map排序
public static void sortMap(){
Score s1 = new Score(40,7);
Score s2 = new Score(47,10);
Score s3 = new Score(10,-7);
Score s4 = new Score(113,57);
Score s5 = new Score(31,-57);
TreeMap tm = new TreeMap();
tm.put(s1.sum, s1);
tm.put(s2.sum, s2);
tm.put(s3.sum, s3);
tm.put(s4.sum, s4);
tm.put(s5.sum, s5);
Iterator it = tm.values().iterator();
while(it.hasNext()){
System.out.println(((Score)it.next()).sum);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub sortMap();
}
}
class Score{ int a; int b; int sum; Score(int a,int b){
this.a = a;
this.b = b;
this.sum = a + b;
}
}
我简单解释一下,我定义Score类就是为了a和b相加,Test类中定义方法实现排序,主方法来调用。按照sum总分进行排序 我不明白treemap它是怎么排序的 谁能帮我解释一下,是按照key排序么,可是key是Object对象,不是只是一个声明的标识么,我原来写的是tm.put("s1", s1); 后面的value无所谓了,是对象还是值(s1.sum)都行,都能够取到,关键是它按照什么排序的
|
|