String 的compareTo方法
public class TreeMapDemo {
public static void main(String[] args) {
TreeMap tm = new TreeMap(new MyComparator());
tm.put("A", 12);
tm.put("C", 13);
tm.put("B",14);
tm.put("D", 15);
System.out.println(tm);
}
}
class MyComparator implements Comparator{
public int compare(Object o1, Object o2) {
String aStr = (String) o1;
String bStr = (String) o2;
return bStr.compareTo(aStr);
}
}
上述代码的运行结果是:
A.{A=12, C=13, B=14, D=15}
B.{D=15, B=14, C=13, A=12}
C.{D=15, C=13, B=14, A=12}
D.{A=12, B=14, C=13, D=15}
正确答案:C
有点纳闷,为什么是C而不是D呢?望知道的朋友给个解释吧。
------解决方案--------------------你这构造器比的是A,B,C,D
而不是表示12,13,14,15
你这里改一下就知道了:
public int compare(Object o1, Object o2) {
String aStr = (String) o1;
String bStr = (String) o2;
int compareTo = bStr.compareTo(aStr);
System.out.println(aStr);
System.out.println(bStr);
System.out.println(compareTo);
return compareTo;
}
结果部分片段:
C
A
-2
------解决方案--------------------
这你得去问sun公司