永发信息网

利用java把学生名和考试分数录入到Map中,并按分数显示成绩是前三的学生的名字。

答案:2  悬赏:80  手机版
解决时间 2021-03-16 18:53
利用java把学生名和考试分数录入到Map中,并按分数显示成绩是前三的学生的名字。
最佳答案
List list = new ArrayList();
for(int i=1;i<10;i++){
Map m = new HashMap();
m.put("name:","name"+i);
m.put("score",i);
list.add(m);
}
System.out.println("默认排序:"+list);
Collections.sort(list,new Comparator() {
public int compare(Object o1, Object o2) {
HashMap m1 = (HashMap) o1;
HashMap m2 = (HashMap) o2;
if((Integer)m1.get("score")>(Integer)m2.get("score")){
return -1;
}else if((Integer)m1.get("score")<(Integer)m2.get("score")){
return 1;
}else{
return 0;
}
}
});
System.out.println("排序后:"+list.get(0)+list.get(1)+list.get(2));

//输出结果:
默认排序:[{name:=name1, score=1}, {name:=name2, score=2}, {name:=name3, score=3}, {name:=name4, score=4}, {name:=name5, score=5}, {name:=name6, score=6}, {name:=name7, score=7}, {name:=name8, score=8}, {name:=name9, score=9}]
排序后:{name:=name9, score=9}{name:=name8, score=8}{name:=name7, score=7}

只用map实现的话好像不可能
treeMap 只能根据key排序 不能对value排序
全部回答
@test     public void test(){         comparator com =new comparator() {             @override             public int compare(object o1, object o2) {                 if (o1 instanceof stduent && o2 instanceof stduent) {                     stduent e1=(stduent)o1;                     stduent e2=(stduent)o2;                     return e1.getresult().compareto(e2.getresult());                 }                 return 0;             }                     };         map map =new treemap(com);         map.put(new stduent(99, 001), "汪峰");         map.put(new stduent(69, 003), "汪峰3");         map.put(new stduent(79, 006), "汪峰4");         map.put(new stduent(89, 005), "汪峰5");         //通过entryset方法把map类型转化为set集合。                 set entry=map.entryset();         //把set集合转化为list集合         list list =new arraylist(entry);            collections.reverse(list);         system.out.println("前三名姓名为:");         for (int i = 0; i < 3; i++) {             system.out.println(list.get(i));         }     } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想做水泵代理商,不知道哪家的好
上官婉儿出生前上官家在唐朝的地位如何
西周的分封制与西汉初年的分封制比较
顺风驾校报名处地址在什么地方,想过去办事
玩英雄杀为什么有那么多素质低下的人 和无脑
跑步机不能启动,屏幕出现一根竖条,是什么原
办房贷的手续 银行工资流水可以是两个银行加
常记饭店这个地址在什么地方,我要处理点事
贵港市威龙润滑油有限公司在什么地方啊,我要
自拍群号码?谁有
觉得气门有点响该不该去调它
一个男人称呼你为爱人,却不肯亲口说爱你,为什
站东宾馆地址有知道的么?有点事想过去
通过开户行向中国农业银行发履约保函查询一般
义乌市国际小商品城年后几号整体开门营业
推荐资讯
老上汽大众车身两侧有金线,前侧有一个红色R标
我成功了300字作文
北京市编办主任是什么级别
一个女生终于同意和我暑假出去旅游几天了,是
探讨一下已婚男平繁的换微信头像,是为了引起
怎么去温哥华市中心 Residence Inn 酒店
上海复旦大学总裁是谁
看间眼前泡面是什么歌的歌词李天佑喊的麦
泰安水上世界
有没有优秀的外汇盘手或资管公司
成鑫驾校新津总校(报名处)在什么地方啊,我要
2015年闯红灯扣几分罚多少钱
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?