Shu*_*ham 0 java arrays nullpointerexception
当我输入数组元素时,以下代码给出了NullPointerException.经过调试和分析后,我发现只有在使用3d数组时才会遇到异常.2d它工作正常.显然由于某种原因,数组将null作为输入.有人可以解释一下吗?也许3D阵列有问题.
编辑:另外,在我的情况下,第三维的值是未知的,因为它将取决于需要首先输入的arr [0] [0] [0]的值.因此应在运行时分配第三维长度.
import java.util.*;
public class NewClass
{
public static void main(String args[])
{
int T;
Scanner sc = new Scanner (System.in);
T=sc.nextInt();//this works fine
int arr[][][]= new int[T][4][];
for(int i=0;i<T;i++)
{
for(int j=0;j<3;j++)
{
arr[i][j][0]=sc.nextInt();//NullPointerException after input
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您尚未指定(或初始化)第三个维度.
您可以将arr初始化更改为
int arr[][][]= new int[T][4][1];
Run Code Online (Sandbox Code Playgroud)
或者可以在内部for循环内创建第三维的数组
for(int j = 0; j < 3; j++) {
arr[i][j] = new int[1];
arr[i][j][0] = sc.nextInt();
}
Run Code Online (Sandbox Code Playgroud)