如何在适合其他值的二维数组中对值进行排序?

时间:2017-04-15 12:35:18

标签: java arrays multidimensional-array bluej

public class Spieler
{
    public Magier Henri = new Magier ("Magier Henri");    
    public Krieger Christian = new Krieger ("Krieger Christian");   
    public Supporter Judith = new Supporter ("Suppporter Judith");
    public Schuetze Lukas = new Schuetze ("Schuetze Lukas");
    public Magier Nick = new Magier ("Magier Nick");    
    public Krieger Anna = new Krieger ("Krieger Anna");   
    public Supporter Neele = new Supporter ("Suppporter Neele");
    public Schuetze Christoph = new Schuetze ("Schuetze Christoph");   
    public int i;
    public int besten5;
    public int bestPlayerEU;
    public int[][] kandidat = new int[8][2]; 
    int t;

    public void fuelleArray()
    {
        kandidat[0][0] = Henri.getGesamtPunkte();
        kandidat[0][1] = 1;
        kandidat[1][0] = Christian.getGesamtPunkte();
        kandidat[1][1] = 2;
        kandidat[2][0] = Judith.getGesamtPunkte();
        kandidat[2][1] = 3;
        kandidat[3][0] = Lukas.getGesamtPunkte();
        kandidat[3][1] = 4;
        kandidat[4][0] = Nick.getGesamtPunkte();
        kandidat[4][1] = 5;
        kandidat[5][0] = Anna.getGesamtPunkte();
        kandidat[5][1] = 6;
        kandidat[6][0] = Neele.getGesamtPunkte();
        kandidat[6][1] = 7;
        kandidat[7][0] = Christoph.getGesamtPunkte();
        kandidat[7][1] = 8;
    }

    public int[][] sort()
    {
        fuelleArray();
        int temp = 0;
        for (int i = 0; i < kandidat.length; i++)
        {
            for(int j = 1; j < kandidat.length-i; j++)
            {
                if(kandidat[j][t] < kandidat[j-1][t])
                {
                    temp = kandidat [j-1][t];
                    kandidat[j-1][t] = kandidat [j][t];
                    kandidat[j][t] = temp;
                }
            }
        } 
        return kandidat;
    }
}

所以在这里我得到了我的数组左侧的随机值排序,但我也希望二维数组右侧的值适合于字符。所以我希望kandidat&#34;亨利&#34;仍然是价值1,&#34;基督徒&#34; = 2,&#34; Judith&#34; = 3,&#34; Lukas&#34; = 4等等。有人可以解释或编写代码,以便数组右侧的数字适合字符/ kandidat s吗?

所以当数组在开头看起来像这样:

    0    1 
0   26   1
1   45   2
2   37   3
3   33   4
4   27   5
5   29   6
6   41   7
7   49   8

最终看起来应该是这样的:

     0    1 
0   26    1
1   27    5
2   29    6
3   33    4
4   37    3
5   41    7
6   45    2
7   49    8

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你想交换一对“kandidate”+数字,将这些对保持在一起。你尝试过这样的事情:

int[] temp = kandidat [j-1];
kandidat[j-1] = kandidat [j];
kandidat[j] = temp;

(kanditate[j][0], kandidate[j][1])对与(kanditate[j-1][0], kandidate[j-1][1])对交换。