学生按成绩排名,成绩相同按输入顺序排名
package jihe;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
public class T3 {
public static void solve()
{Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
LinkedHashMap<String,Integer>mp=new LinkedHashMap<String,Integer>();
for(int i=1;i<=n;i++)
{String s=cin.next();
int g=cin.nextInt();
mp.put(s, g);
}
List<Map.Entry<String,Integer>>list=new ArrayList<Map.Entry<String,Integer>>(mp.entrySet());
Collections.sort(list,new Comparator<Map.Entry<String,Integer>>()
{public int compare(Entry<String,Integer>o1,Entry<String,Integer>o2)
{return o2.getValue().compareTo(o1.getValue());
}
});
for(Map.Entry<String,Integer>mapp:list)
{System.out.println(mapp.getKey()+" "+mapp.getValue());
}
}
public static void main(String args[])
{solve();
}
}
这里用linkedmap实现,linkedmap可以按输入排序,而treemap则是按照键值自动进行排序
这里用到了自定义比较器