如何从索引[1] [1]而不是[0] [0]开始和2d数组

时间:2017-01-11 23:42:55

标签: java

如何创建一个数组,其中第一个值不是存储在0而是存储在1.这是一个剧院座位程序,其中行和列必须从1开始而不是0.请帮助!我被卡住了这是过去2天!!

int[] [] myarray = new int [2] [3];

1 个答案:

答案 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

您必须添加更多功能才能获得大小等内容,但这应该可以让您入门。

相关问题