微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么得到“ java.lang.ArrayIndexOutOfBoundsException:0”

如何解决为什么得到“ java.lang.ArrayIndexOutOfBoundsException:0”

| 怎么了当我在Netbeans中运行代码“ \ java.lang.Arrayindexoutofboundsexception:0”时,出现运行时错误 我发现这意味着“值不存在”之类的东西-但这就是我要尝试的操作-让用户定义数组大小的值。请帮助。
public static void main(String[] args) {

    int row = 0;
    int colum = 0;

    //Declare 2d array
    int [][] matrix = new int [row][colum];
    //Create input for array size
    Scanner input = new Scanner(system.in);
    System.out.println(\"Enter \" + matrix[row].length + \" rows and \" + matrix[colum].length + \" colums: \");
    for (row = 0; row < matrix.length; row++) {
        for (colum = 0; colum < matrix[row].length ; colum++) {
            matrix[row][colum] = input.nextInt();
    //Input variables to array


    //Print the array
    for (row = 0; row < matrix.length; row++ ) {
        for (colum = 0; colum < matrix[row].length; colum++ ) {
            System.out.println(matrix[row][colum] + \"\");
        }

        System.out.println();
    }



        }
    }








    }


}
    

解决方法

两个问题。您需要使用非零值初始化行和列:
int row = 3;
int colum = 4;
您没有正确引用矩阵的尺寸,您需要:
System.out.println(\"Enter \" + matrix.length + \" rows and \"
        + matrix[0].length + \" colums: \");
后面还有其他一些不好的参考。当然,您可以只使用
row
column
变量,而不是从
matrix
获取长度。     ,对于你的情况
int [][] matrix = new int [0][0];
没有元素的均值,索引从0开始,其中您指定的大小从1开始 如果要动态数组,请选择
ArrayList
    ,您的数组有0个元素-您正在尝试访问第一个元素(索引为0)-该元素超出范围。     ,您正在创建两个维度均为0的数组的数组:
int row = 0;
int colum = 0;

//Declare 2d array
int [][] matrix = new int [row][colum];
如果您尝试为此编制索引,您将获得
ArrayIndexOutOfBoundsException
。 将
row
colum
设置为> 0。 Java中的数组具有固定大小。创建数组后,就无法更改其大小。如果需要在运行时更改大小,请使用集合类(例如an7ѭ)而不是数组。     ,
int row = 0;
int colum = 0;
int [][] matrix = new int [row][colum];
声明的数组具有零行零列。您无法在其中存储任何内容。 异常发生在这里:
matrix[row].length
row=0
表示,因为它不存在第一行的列数(数组从零开始!)。     ,您的问题是要将
row
column
设置为0,然后在两个方向上创建一个大小为0的二维数组,然后执行以下操作:
matrix[row].length
失败,因为在索引0处没有任何条目-它要求数组的大小至少为1。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。