我正在尝试按降序输出姓名和相应的分数。有一个字符串数组和另一个整数数组,我试图关联这两个数组。我使用了 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/