选择某种Map集合保存学号从1到15的学员的学号(键)和姓名(值),
学号用字符串表示,输入的时候要以学号乱序的方式存入Map集合,
然后按照学号从大到小的顺序将Map集合中的元素输出打印。
需要自定义Map集合的比较器Comparator,因字符串对象的大小比较是按字典序,而非对应的数值。
要求:必须使用Map集合的内部排序机制进行排序,不能在外部排序。
import java.util.*;
public class TreeMapExample {
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeMap<String,String> tm=new TreeMap<String,String>(new MyComparator());
tm.put("01", "张三");
tm.put("02", "李四");
tm.put("03", "王五");
tm.put("04", "赵一");
tm.put("09", "钱二");
tm.put("06", "孙三");
tm.put("10", "王七");
tm.put("14", "小明");
tm.put("12", "大明");
tm.put("07", "韩梅梅");
tm.put("13", "李雷");
tm.put("08", "张一");
tm.put("05", "张二");
tm.put("11", "张四");
tm.put("15", "张五");
Set keySet=tm.keySet();
Iterator it=keySet.iterator();
while(it.hasNext()) {
Object key=it.next();
Object value=tm.get(key);
System.out.println(key+":"+value);
}
}
}
class MyComparator implements Comparator{
public int compare(Object obj1,Object obj2) {
String id1=(String) obj1;
String id2=(String) obj2;
return id2.compareTo(id1);
}
}