如何创建一个数组,其中第一个值不是存储在0而是存储在1.这是一个剧院座位程序,其中行和列必须从1开始而不是0.请帮助!我被卡住了这是过去2天!!
int[] [] myarray = new int [2] [3];
答案 0 :(得分:1)
这是我对你想要模仿Java中的原始数组结构的最佳猜测,使用它作为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;
}
}
然后像这样创建
int [] [] myarray = new int [2] [3];
变为
OneIndexed2DArray myarray = new OneIndexed2DArray(2, 3);
将值设置为[1] [1] = 1
myarray.SetValue(1, 1, 1);
获取该值
int theValue = myarray.GetValue(1,1);
如果将0用作索引,则会引发异常,就好像2D数组没有0索引
myarray.SetValue(0, 1, 5) returns ArrayIndexOutOfBoundsException
myarray.GetValue(1, 0) returns ArrayIndexOutOfBoundsException
您必须添加更多功能才能获得大小等内容,但这应该可以让您入门。