如何对适合其他值的二维数组中的值进行排序?
How to sort values in a two dimensional array suitable to the other values?
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
"Henri" 仍然是值 1
, "Christian" = 2
, "Judith" = 3
, "Lukas" = 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
如果我没理解错的话,您想交换 "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])
对交换。
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
"Henri" 仍然是值 1
, "Christian" = 2
, "Judith" = 3
, "Lukas" = 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
如果我没理解错的话,您想交换 "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])
对交换。