黑马程序员技术交流社区

标题: 问个集合的小问题 [打印本页]

作者: hysnxdss    时间: 2016-9-24 20:34
标题: 问个集合的小问题
键盘录入学生成绩排序,然后通过性别排序,把性别是女的排序到前面,后打印

如果用Map集合
把学生作为键,成绩作为值,可不可以同时排序呢?




作者: pdog    时间: 2016-9-25 00:45
是 女女女女男  还是 同分的女拍前面  如果是前者可以传入比较器  如果成绩相等 然后再返回一个(判断o1是不是女的,是的话给一个 -1 )
作者: 边_城    时间: 2016-9-25 00:58
新手表示看不懂帮顶

作者: 小东先森    时间: 2016-9-25 08:47
你用LinkedHashMap存,不就有序了吗。
作者: hysnxdss    时间: 2016-9-25 21:45
pdog 发表于 2016-9-25 00:45
是 女女女女男  还是 同分的女拍前面  如果是前者可以传入比较器  如果成绩相等 然后再返回一个(判断o1是 ...

同分的女的排在前面....有没有思路呢?
作者: pdog    时间: 2016-9-25 23:46
hysnxdss 发表于 2016-9-25 21:45
同分的女的排在前面....有没有思路呢?

传入一个比较器 ,
获得两个Student类型的对象
然后定一个int 用来接受 集合.get(对象一) - 集合.get(对象二); 也就是成绩比较
然后定一个int 用来接收 对象一.compareTo(对象二)的值

然后return一个三元 第一个int为0的时候 返回第二个int 否则返回第一个

作者: 疯狂的麦克斯    时间: 2016-9-26 00:42
可以使用treeMap,并传入一个比较器,比较器内重写,使用三元运算符确定先按成绩排序,再按性别排序




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2