題目:
選擇某種Map集合保存學號從1到15的學員的學號(鍵)和姓名(值),學號用字符串表示,輸入的時候要以學號亂序的方式存入Map集合,然後按照學號從大到小的順序將Map集合中的元素輸出打印。需要自定義Map集合的比較器Comparator,因字符串對象的大小比較是按字典序,而非對應的數值。
要求:必須使用Map集合的內部排序機制進行排序,不能在外部排序。
代碼:
package 集合框架2;
import java.util.*;
public class Test {
public static void main(String[] args) {
TreeMap map = new TreeMap(new MyComparator());
map.put("1", "a");
map.put("4", "b");
map.put("2", "c");
map.put("5", "d");
map.put("3", "e");
for (Object key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
}
class MyComparator implements Comparator {
public int compare(Object obj1, Object obj2) {
String ele1 = (String) obj1;
String ele2 = (String) obj2;
return ele2.compareTo(ele1);
}
}
界面: