java 班级成绩排名

学生按成绩排名,成绩相同按输入顺序排名

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则是按照键值自动进行排序

这里用到了自定义比较器

猜你喜欢

转载自blog.csdn.net/sdauguanweihong/article/details/84477970