Java 如何将数组按降序排列在字符串数组旁边

Java 如何将数组按降序排列在字符串数组旁边,java,arrays,sorting,Java,Arrays,Sorting,这是我的密码。。。我需要所有的参赛者根据他们的投票进行排名。。。正如你所看到的,名字和投票计数有不同的数组。。。我被告知冒泡排序会起作用,但我不知道怎么做,因为冒泡排序会替换内部,所以如果tally[2]大于tally[1],它将成为新的tally[1],同时名称保持不变,因为名称[1]不会随名称[2]而改变…我希望您使用基本代码,因为我是一个编程高手,而且最近才开始…此外,对于如何更好/更短地编写代码的任何建议,我都非常感谢 import java.util.*; public class F

这是我的密码。。。我需要所有的参赛者根据他们的投票进行排名。。。正如你所看到的,名字和投票计数有不同的数组。。。我被告知冒泡排序会起作用,但我不知道怎么做,因为冒泡排序会替换内部,所以如果tally[2]大于tally[1],它将成为新的tally[1],同时名称保持不变,因为名称[1]不会随名称[2]而改变…我希望您使用基本代码,因为我是一个编程高手,而且最近才开始…此外,对于如何更好/更短地编写代码的任何建议,我都非常感谢

import java.util.*;
public class FroshNight {

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String dec = "0";
    System.out.println("How many blocks?");
    int contno = sc.nextInt();
    int winner = 0;
    String winname = "a";
    String[] code = new String[contno];
    int total = 0;
    int counter = 0;
    String[] contname = new String[contno];
    int[] tally = new int[contno];
    while (counter<contno) {
        System.out.print("Name of Pair:");
        contname[counter]=sc.next();
        counter++;
    }
    counter=0;
    while (counter<contno) {
        System.out.println("Choose a vote code for "+ contname[counter]+"(must not be x)");
        code[counter] = sc.next();


        counter++;
    }
    boolean stop = false;

    counter=0;
    while(stop == false){
        System.out.println("Input Vote (x to exit): ");
        dec = sc.next();
        if(dec.equals("x")) {
            stop = true;

        }
        counter = 0;
        while(counter<contno){  

            if(dec.equals(code[counter])){
                tally[counter] +=1;
                counter = contno;

            }
            counter++;
        }

    }
    //>> aft. else
    counter = 0;
    while(counter<contno){
        total += tally[counter];
        counter++;
        ;
    }
    counter=0;
    while(counter<contno){
        if(tally[counter]>winner){
            winner = tally[counter];
            winname = contname[counter];
        }
        counter++;
    }
    System.out.print("The Winner is: "+ winname +" - "+winner );
    System.out.println("("+((double)winner/total)*100+"%)");

    counter = 0;
    while (counter<contno) {
        System.out.print(contname[counter]+" - Score:");
        System.out.print(tally[counter]);
        System.out.println("("+((double)tally[counter]/total)*100+"%)");

        counter++;

    }

    //>>> end while

    // add rankings here^^
}

    }

方法。。。更多方法。。。hehAs@austinwernli说,你绝对应该使用方法。拥有分数数组和相关名称数组是没有意义的。这只会让事情变得更复杂。创建一个名为like competitor的类,该类包含两个值并放入单个数组中,然后使用适当的Comparator类对其进行排序。顺便说一句,在Java中,您很少使用数组,而是使用列表。