5

私はMatlab、マトリックスを作成して取得できる の機能に慣れA[i][j]ていました。現在、私は Java を使用していますが、1 次元配列しか使用できません。ネストされた for ループを使用してエントリ (i: 行と j: 列) を変更することを想定していますが、それらが 1D 配列に格納されている場合、それらにアクセスする方法がわかりません。誰かが私を助けてくれますか?どのくらい難しいですか?

4

5 に答える 5

7
 int rows = 3;
 int cols = 4;
 int[] array = new int[rows*cols];
 int[] currentRow = new int[cols];
 for (int i = 0; i < rows; ++i) {
     for (int j = 0; j < cols; ++j) {
         currentRow[j] = array[i*cols + j];
     }
 }
于 2013-03-30T19:06:46.673 に答える
5
private int getElem(int[] arr, int i, int j){
  return arr[i*colNum+j];
}
于 2013-03-30T19:15:39.350 に答える
1

これを正しく理解していることを願っています。

10x10 の 2D 配列があり、それを 1 次元にしたいとします。

array[0] から array[9] を 2D 配列の最初の行にすることができます。次に、array[10] から array[19] は 2D 配列の 2 行目です。

これを行うには、おそらくもっと効率的な方法があります。

于 2013-03-30T19:10:51.277 に答える
1

Java では、次のように 2D 配列を使用することもできます。

int[][] my2DArr = new int[4][3]; //creates a 2D array with 4 rows and 3 columns
int value = my2DArr[2][1]; //gets the value at row 2 and column 1

ここで、2D 配列を表す 1D 配列を使用する必要がある場合、列の数と行の数がわかっている場合は、特定の行と列のペアの位置を見つけるために簡単な計算を行うことができます。ここを参照してください: 2D 配列を 1D 配列に変換する

于 2013-03-30T19:06:09.577 に答える