【发布时间】:2014-05-11 15:11:53
【问题描述】:
现在我有一个方法可以从二维数组中获取数据,将其放入 Arraylist 中,然后让我只从该 Arraylist 中检索我想要的特定部分。
下面的代码循环遍历races Arraylist,并将赛车手、总时间和他们参加的赛事数量放入一个数组中,到目前为止还没有任何顺序。
if (!Found && selected.equals(race.GetCat()))
{
ranking[j][0] = race.GetComp();
ranking[j][1] = race.GetCat();
ranking[j][2] = (GetSecs(race.GetRace1()))
+ (GetSecs(race.GetRace2()))
+ (GetSecs(race.GetRace3())) + "";
n++;
};
Found= false;
for (int i = 0; i < locations.size(); i++)
{
for (Race race: races)
{
if (race.GetComp().equals(array[i][0]) && option.equals(array[i][1]))
{
seconds += (GetSes(race.GetRace1()))
+ (GetSes(race.GetRace2()))
+ (GetSes(race.GetRace3()));
total= GetMin(seconds);
counter++;
}
ranking[i][2] = total2 + "";
ranking[i][3] = counter + "";
}
}
所以排名打印出来像
赛车总时间事件参与 名称 230.44 2 姓名 142.51 4 名称 523.01 7 名称 444.55 2 名称 432.18 4对排名(字符串)数组进行排序,以便通过事件数量或比赛的总时间对其进行排序不会太难。
但是,不止一名赛车手将参加相同数量的赛事,所以我想知道我必须通过什么流程或代码才能根据赛事数量对数组进行排序,然后检查查看哪些排名共享事件数量,然后根据总时间最低的情况进行切换
所以排名是这样的
乔治 500 5 约翰 400 5 乔治 500 4 大卫 300 3 卡尔 200 3排序如下
约翰 400 5 乔治 500 5 乔治 500 4 卡尔 200 3 大卫 300 3如果这样的事情是可能的。我可以将它们放入一个数组中,甚至按一个特定的列对它们进行排序,但是如果第一列的数字相同,则按一个排序,然后再按另一个排序,这完全超出了我的范围,如果这篇文章有任何意义的话。
【问题讨论】:
标签: java arrays sorting arraylist