【发布时间】:2013-10-31 13:57:34
【问题描述】:
我有两节课
public class PopularSports {
public int Rank;
public String Sport;
}
public class Medals {
public String Sport
public String Medal
public int Year
public String Game
public String Athlete
}
当我尝试引导他们的 csv 并在每个班级的列表中获得结果时,我想按以下顺序对它们进行排序。
PopularSports 类应按以下顺序排序:
- 排名
- 运动
奖牌类应按以下顺序排序:
- 运动
- 奖牌
- 年份
- 游戏
- 运动员
我已经创建了这样的压实机
Collections.sort(medalReportList, new Comparator<Medals >() {
@Override
public int compare(Medals o1, Medals o2) {
return getRankOfSportBySportName(o1.getSport()) > getRankOfSportBySportName(o2.getSport())
? +1
: getRankOfSportBySportName(o1.getSport()) < getRankOfSportBySportName(o2.getSport())
? -1
: o1.getAthlete().compareToIgnoreCase(o2.getAthlete());
}
});
但这并没有实现,它按运动员姓名排序。
【问题讨论】:
-
好的希望你在排序第一个列表时没有问题??你想如何排序第二个......?即如果运动相同,则根据奖牌排序,如果奖牌根据比赛等排序......等等?这是你想要的吗??
-
请包含一些您想要排序的数据。
-
您的
getRankOfSportBySportName返回什么?你确定它工作正常吗? -
@Jesper 函数返回运动的 int 等级
-
@jesper 谢谢你,是的,这个函数的行为很奇怪,因为 csv 阅读在阅读时也采取了 "
标签: java sorting comparator