java - 将匹配数组发出到已排序的整数列表

标签 java arrays sorting

我目前有玩家 1-4 的分数排序列表,但在将它们与正确的玩家匹配时遇到问题。

以这个方法为例:

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 给出的有序输出为

Player 1 scored 1
Player 2 scored 2
Player 3 scored 2
Player 4 scored 5

这显然是不正确的,我不知道如何获得正确的玩家编号及其相应的分数来打印。如果能朝正确的方向插入,我们将不胜感激。

最佳答案

这里有一个使用 TreeMap<> 的选项,因此不需要定义另一个类,只需将每个分数映射到其玩家即可。

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());
}

关于java - 将匹配数组发出到已排序的整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34107174/

相关文章:

java - producteev4j 实现

javascript - 从起始位置求和下一个数组元素 (javascript)

java - 列表无法转换为数组的原因是什么?

带有嵌套 while 循环的 Python 选择排序

java - Collections.sort 按列表中对象的日期属性排序

java - 在应用内结算(IAB 版本 3)android 中恢复购买

Java邮件 : get size of a MimeMessage

java - 文本比较算法或程序?

java - 查找字符串数组列表之间的共同点

java - 使用 double 类型对对象数组列表的数组列表进行排序