首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发出与已排序的整数列表匹配的数组

发出与已排序的整数列表匹配的数组
EN

Stack Overflow用户
提问于 2015-12-05 23:24:48
回答 2查看 36关注 0票数 0

我目前有一个球员1-4的得分排序列表,但我在将他们与正确的球员进行匹配时遇到了问题。

以此方法为例:

代码语言:javascript
复制
public static void exitmethod(int[] scorep1)
{
  sort(scorep1);
  for (int i = 0; i < 4; i++)
  {
     System.out.println("Player " + (i+1) + " scored " + scorep1[i] + "");
  }
  System.exit(0);
}

以这种方式将分数与Player 1 = 5Player 2 = 2Player 3 = 2Player 4 = 1的分数一起打印出来,得到的有序输出为

代码语言:javascript
复制
Player 1 scored 1
Player 2 scored 2
Player 3 scored 2
Player 4 scored 5

这显然是不正确的,我不知道如何获得正确的球员编号来打印它的相应分数。如果能在正确的方向上推进,我们将非常感激。

EN

回答 2

Stack Overflow用户

发布于 2015-12-05 23:55:28

这里有一个使用TreeMap<>的选项,这样就不需要定义另一个类,只需将每个分数映射到它的球员。

代码语言:javascript
复制
int scores[] = {7, 3, 1, 2, 4};
Map<Integer, Integer> map = new TreeMap<>();
for (int i = 0; i < scores.length; i++) {
    map.put(scores[i], i);
}
System.out.println("map = " + map);
for (Entry<Integer, Integer> e : map.entrySet()) {
    System.out.println("player " + e.getValue() + " scored " + e.getKey());
}
票数 2
EN

Stack Overflow用户

发布于 2015-12-05 23:47:38

默认的Array.sort(int[]) gives you ascending结果而不是降序。

您可以创建自己的比较器,并将其作为参数传递给适当的List::sort方法,因为您说您已经“拥有一个排序的列表”。

似乎没有Arrays.sort()的一个版本,它也接受一个比较参数。

编辑:另请参阅@Haider的评论以获取示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34107174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档