对于一个Map来讲,其每一个元素由一个key和一个对应的value组成。其中,key的值是唯一的,而value的值是可以重复的。此题中,分析可得出,是根据value来进行排序。
public static void main(String[] args) {
Map<String , Integer> map = new HashMap<>();
map.put("张三", 50);
map.put("李四", 40);
map.put("王五", 55);
map.put("赵六", 60);
map.put("钱七", 90);
map.put("孙八", 80);
map.put("周九", 100);
Set<String> nameSet = map.keySet();
List<String> name = new ArrayList<>();
List<Integer> score = new ArrayList<>();
for(String n:nameSet) {
name.add(n);
score.add(map.get(n));
}
for(int i = 0 ; i < score.size() - 1 ; i++) {
for(int j=i+1;j<score.size();j++) {
if(score.get(i)<score.get(j)) {
Collections.swap(score, i, j);
Collections.swap(name, i, j);
}
}
}
System.out.println("成绩前三名:");
for(int i = 0 ; i<3 ; i++) {
System.out.println("姓名:"+name.get(i)+",成绩:"+score.get(i));
}
}