私は次元がmyArray[x][3]
である2次元配列を持っています。私は[x][0]
に基づいて配列をソートする必要があります。私はArrays.sort(myArray);
を使っていました。しかし、当時の配列はmyArray[x]
の1次元配列でした。それから私は自分の考えを変え、それを2次元の配列に変えました。これは1から9までの整数で埋められています。私は2次元配列をソートする明確な方法を探しており、簡単な説明を見つけることはできません。助けてください。単純な整数2次元配列をソートするにはどうすればよいですか?
ありがとうございます。 アイス
[OK]を、ここではコードです:
public static void sortArray(int myArray[][]){
Arrays.sort(myArray, new Comparator<Integer[]>(){
@Override
public int compare(Integer[] o1, Integer[] o2) {
return o1[0].compareTo(o2[0]);
}
});
は、その仕事をしましたか?
OK、ここに問題があります。ソートされた配列は、このように、ソートされていないアウト開始:
3 - 0 - 0
4 - 0 - 1
5 - 0 - 2
6 - 0 - 3
3 - 0 - 4
最初の列[0][x]
値であり、第二カラム[1][x]
アレイフィールド数であり、そして最後の列[2][x]
は、アレイ内の実際の列数です。全体的な方法は、元の2次元配列から1行全体を取り出し、3列x幅の配列にロードした後、[0][x]
列に基づいて配列をソートします。ここでは、ソート機能は、現在呼び出された後の結果である:ソートは間違っているよう
0 - 0 - 3
0 - 1 - 4
0 - 2 - 5
0 - 3 - 6
0 - 4 - 3
が、私はコピーして貼り付け方法は、数字をスワップアウトされ、そうです。同じSystem.out.print
が両方の出力で使用されています。
全体の2次元配列をソートするか、配列の各行を個別にソートしますか? – birryree
あなたは、配列の列を賢明に並べ替えることを意味しますか? – rohit89
列を結合したままにして、列0に基づいて並べ替える必要があります。最初の列には値が入り、2番目の列には基本的にx座標が含まれ、3番目の列には基本的にyの値が含まれています。最初の列は、最小から最大までソートする必要があります。 – IceRegent