从键盘输入5个学生的姓名和成绩,并存入到Map中,然后进行排序
public class Student {
public static void main ( String[ ] args) {
Map< String, Integer> student = new TreeMap < String, Integer> ( ) ;
for ( int x = 1 ; x <= 5 ; x++ ) {
Scanner sc = new Scanner ( System. in ) ;
System. out. println ( "请录入第" + x + "个人的学习信息" ) ;
System. out. println ( "姓名:" ) ;
String name = sc. nextLine ( ) ;
System. out. println ( "成绩:" ) ;
int grades = sc. nextInt ( ) ;
student. put ( name, grades) ;
}
List< Map. Entry< String , Integer>> list= new ArrayList < Map. Entry< String, Integer>> ( student. entrySet ( ) ) ;
Collections. sort ( list, new Comparator < Map. Entry< String, Integer>> ( ) {
@Override
public int compare ( Map. Entry< String, Integer> o1, Map. Entry< String, Integer> o2) {
return o2. getValue ( ) . compareTo ( o1. getValue ( ) ) ;
}
} ) ;
Set set = student. keySet ( ) ;
Iterator i= set . iterator ( ) ;
System. out. println ( "map按名字排序后:" ) ;
while ( i. hasNext ( ) ) {
String key= ( String) i. next ( ) ;
System. out. println ( "名字:" + key+ " 成绩:" + ( ( Integer) student. get ( key) ) . intValue ( ) ) ;
}
System. out. println ( "map按成绩排序后:" ) ;
for ( Map. Entry< String, Integer> entry: list) {
System. out. println ( "名字:" + entry. getKey ( ) + " 成绩:" + entry. getValue ( ) ) ;
}
}
}