java - 按降序对整数数组进行排序并将其与相应的字符串数组相关联

标签 java android arrays sorting indexing

我正在尝试按降序输出姓名和相应的分数。有一个字符串数组和另一个整数数组,我试图关联这两个数组。我使用了 Arrays.sort 并尝试获取索引。然后使用索引将名称安排在与相应分数相似的位置。我有这段代码,但出现运行时错误,提示不幸的是,您的应用已停止。任何人都可以帮助我在这里实现我的目标需要做什么吗?非常感谢!

           int score[]= new int[4];
            score[0]= 10;
            score[1]= 50;               
            score[2]= 20;
            score[3]= 60;
           String names[] = new String[4];
            names[0]= "player1";
            names[1]= "player2";
            names[2]= "player3";
            names[3]= "player4";

            Arrays.sort(score);
            int index_array[] = new int[4];
            int m = 0;
            for(m = 0; m <4; m++){
                index_array[m]=Arrays.binarySearch(score ,score[m]);
                l = index_array[0];


            }
            for(int i = 0; i<4; i++){
                if(l == score[i]){
                    j = i;
                }
            }
            String name = names[m];
            show.setText(name + " " + Integer.toString(l));

最佳答案

创建保存玩家姓名和分数的玩家模型,然后使用 Comparator 按分数对玩家进行排序。

播放器模型:

class Player {

private String name;

private int score;

public Player(String name, int score) {
    this.name = name;
    this.score = score;
}

public String getName() {
    return name;
}

public int getScore() {
    return score;
}

public String toString() {
    return "name=" + name + "; score=" + score;
}

比较器:

class PlayerComparator implements Comparator<Player> {
public int compare(Player p1, Player p2) {
    return p1.getScore() < p2.getScore() ? -1
            : p1.getScore() > p2.getScore() ? 1 : 0;
}

以及一个使用示例:

public class PlayerTest {

public static void main(String[] args) {
    int score[]= new int[4];
    score[0]= 10;
    score[1]= 50;
    score[2]= 20;
    score[3]= 60;

    String names[] = new String[4];
    names[0]= "player1";
    names[1]= "player2";
    names[2]= "player3";
    names[3]= "player4";

    Player[] players = new Player[names.length];
    for(int i = 0; i < names.length; i++) {
        players[i] = new Player(names[i], score[i]);
    }

    Arrays.sort(players, new PlayerComparator());

}

关于java - 按降序对整数数组进行排序并将其与相应的字符串数组相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15074837/

相关文章:

java - 如何在arcore Android应用程序中将一个3D模型覆盖在另一个上

javascript - 如何对 "fuzzy"数组进行指纹识别

Javascript 使用 MAP 从二维数组创建多个字符串?

java - Swing 上的 EDT(傻瓜版)

Android getColumName 和 getColumnIndex

java - computeIfAbsent 如何随机使 ConcurrentHashMap 失败?

android - 向 Android Saripaar 添加自定义注释

c - 使用 Malloc for i endless C -String

java - 当构建目标使用新 API 级别 21 时,Android 项目 fragment 转换抛出异常

java - 如何将数据插入 Hive 2 中的复杂数据类型 “Struct”