-1
最初の値が0ではなく1に格納されている配列を作成するにはどうすればいいですか?行と列が1で始まらなければならない劇場座席プログラム0。私は過去2日間このことに固執しました![0] [0]の代わりにインデックス[1] [1]から2d Arrayを開始して2次元配列を作成する方法
int[] [] myarray = new int [2] [3];
最初の値が0ではなく1に格納されている配列を作成するにはどうすればいいですか?行と列が1で始まらなければならない劇場座席プログラム0。私は過去2日間このことに固執しました![0] [0]の代わりにインデックス[1] [1]から2d Arrayを開始して2次元配列を作成する方法
int[] [] myarray = new int [2] [3];
これは、そのように
int型のようにそれを作成するには、1つのインデックスとする配列
public class OneIndexed2DArray {
int[][] indexedArray;
public OneIndexed2DArray(int row, int col)
{
indexedArray = new int[row + 1][col + 1];
}
public int GetValue(int row, int col) throws ArrayIndexOutOfBoundsException
{
if(row == 0 || col == 0)
{
throw new ArrayIndexOutOfBoundsException();
}
else
return indexedArray[row][col];
}
public void SetValue(int row, int col, int value) throws ArrayIndexOutOfBoundsException
{
if(row == 0 || col == 0)
{
throw new ArrayIndexOutOfBoundsException();
}
else
indexedArray[row][col] = value;
}
}
としてそれを使用してJavaでorginal配列構造を模倣したいもので私の最高の推測です[] [] myarray =新しいint [2] [3]; 0として使用される場合
は
OneIndexed2DArray myarray = new OneIndexed2DArray(2, 3);
がその値
int theValue = myarray.GetValue(1,1);
を取得[1] 1
myarray.SetValue(1, 1, 1);
を= [1]の値を設定し、例外をスローなります2D配列に0のインデックスがないかのように動作するインデックス。
myarray.SetValue(0, 1, 5) returns ArrayIndexOutOfBoundsException
myarray.GetValue(1, 0) returns ArrayIndexOutOfBoundsException
サイズなどの情報を得るためには、さらに機能を追加する必要がありますが、これで始めることができます。
あなたはそうではありません。それがJavaの仕組みです。ディスプレイの値を内部的に調整します。 – chrylis
私は整数の2次元配列を含むクラスを作成し、1から始まる索引付けを使用します。 –