多くの人がこの問題に遭遇したと思います。文字列コンポーネントと整数で構成される 2D 配列があります。元。
`String[][] data = {{"Name1","5"}, {"Name2","10"},{"Name3","1"}, {"Name4","3"}};`
ここで、その 2D 配列を整数 (この場合はプレーヤーのスコア) で並べ替えたいと考えていますが、一致する名前をプレーヤーのスコアとともに移動させたいと考えています。これは私が得たものですが、結果は想定とはかけ離れています。
private void sort(){
boolean sort;
int current, next;
do{
sort = true;
for (int i = 0; i < data.length - 1; i++){
if (data[i][1] !=null && data[i+1][1] != null){
current = Integer.parseInt(data[i][1]);
next = Integer.parseInt(data[i+1][1]);
if(current > next){
String temp = "";
data[i][1] = Integer.toString(next);
data[i+1][1] = Integer.toString(current);
data[i][0] = temp;
data[i][0] = data[i+1][1];
data[i+1][0] = temp;
sort = false;
}
}
}
}while(!sort);
}
一般的な 2D 配列を使用する理由を尋ねると、JFRAME では JTable がデータ用に 2D 配列を必要とするためです。