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();
	LinkedHashMapmp=new LinkedHashMap();
for(int i=1;i<=n;i++)
{String s=cin.next();
int g=cin.nextInt();
mp.put(s, g);
}
List>list=new ArrayList>(mp.entrySet());
Collections.sort(list,new Comparator>()
		{public int compare(Entryo1,Entryo2)
		{return o2.getValue().compareTo(o1.getValue());
		}
});
for(Map.Entrymapp:list)
{System.out.println(mapp.getKey()+" "+mapp.getValue());

}
}
public static void main(String args[])
{solve();
}
}

这里用linkedmap实现,linkedmap可以按输入排序,而treemap则是按照键值自动进行排序

这里用到了自定义比较器

你可能感兴趣的:(java)