Java 为整数数组排序,同时为记分板排序字符串数组

Java 为整数数组排序,同时为记分板排序字符串数组,java,arrays,sorting,bubble-sort,Java,Arrays,Sorting,Bubble Sort,我正在为我正在创建的游戏制作一个记分板,但我需要制作一个记分板,该记分板将使用气泡排序算法按递减顺序对分数进行排序。但是,排序后的分数列表的相应名称会被弄乱。我已经搜索了一个答案,但它们是用array.sort完成的,这不是我自己的排序算法。 请帮我把分数分类,同时正确的名字会印在旁边 现在让我们说: int[] scores={6,3,15,12}; String[] names={"player1","player2","player3","player4"}; 使用面向对象编程。维护并行

我正在为我正在创建的游戏制作一个记分板,但我需要制作一个记分板,该记分板将使用气泡排序算法按递减顺序对分数进行排序。但是,排序后的分数列表的相应名称会被弄乱。我已经搜索了一个答案,但它们是用array.sort完成的,这不是我自己的排序算法。 请帮我把分数分类,同时正确的名字会印在旁边

现在让我们说:

int[] scores={6,3,15,12};
String[] names={"player1","player2","player3","player4"};

使用面向对象编程。维护并行阵列很困难。创建数据类型要容易得多,比如说保存名称和分数的Player,然后实现接口并基于此进行排序,或者使用自定义排序对Player对象的分数值进行排序。

如果确实需要这样做,您可以在交换结果的同时添加另一个temp变量并交换名称中的项目。只需复制if语句中的前3行即可

但最好创建一个有名称和结果的Player类,然后对一个Player数组进行排序。 看起来像这样

if(players[i].getResult() < players[i+1].getResult()) {
        temp = players[i];
        players[i]=players[i+1];
        players[i+1] = temp;

        sorted = false;}
    }

然后是players[i].getName,用于打印语句。

您应该使用更好的数据结构,如地图。或者,您可以创建一个player类,其中包含名称和分数的变量,然后根据分数进行排序。
if(players[i].getResult() < players[i+1].getResult()) {
        temp = players[i];
        players[i]=players[i+1];
        players[i+1] = temp;

        sorted = false;}
    }