Java 参差不齐/参差不齐数组空指针异常

Java 参差不齐/参差不齐数组空指针异常,java,arrays,null,ragged,Java,Arrays,Null,Ragged,在下面的代码中,我使用计数器[],其中有许多值为0,并确定0值的数量 利用这一点,我创建了锯齿状数组counter3的前半部分,它在计数器[]中的每一行都有一个值,列等于计数器[]中的值 使用counter3[i]=new double[counter[i]初始化未成功,因此我创建了类MakeJagArray,它接受一个值并返回一个0值的双数组,该值的大小与给定的数字相同 设置计数器3[i][j]的值是空指针。不确定原因 int counter2 = 0; for(int i=0

在下面的代码中,我使用计数器[],其中有许多值为0,并确定0值的数量

利用这一点,我创建了锯齿状数组counter3的前半部分,它在计数器[]中的每一行都有一个值,列等于计数器[]中的值

使用counter3[i]=new double[counter[i]初始化未成功,因此我创建了类MakeJagArray,它接受一个值并返回一个0值的双数组,该值的大小与给定的数字相同

设置计数器3[i][j]的值是空指针。不确定原因

    int counter2 = 0;
    for(int i=0;i<counter.length; i++){
        if (counter[i]>0){
            counter2++;
        }
    }

    double[][]counter3 =new double[counter2][];

    int i = 0;
    for(j=0;j<counter.length;j++){
        if(counter[j]>0){
            //MakeJagArray pHT = new MakeJagArray(counter[j]);
            counter3[i] = new double[counter[j]];
            //counter3[i] = pHT.go();
            i++;
        }
    }
    double q;
    for(i=0;i<counter3.length; i++){
        for(j=0; j<counter3.length; j++){
        counter3[i][j] = 0.0; //q=linespositions[i][j];
        }
    }


public class MakeJagArray {
    int num;
    public MakeJagArray(int num){
        this.num= num;
    }

    public double[] go(){
        double[]poop = new double[num];
        for(int i = 0; i<poop.length;i++){
            poop[i] = 0.0;
        }
        return poop;
    }
}

forj=0;jc检查计数器3[i]获取初始化。@ajb这是一个错误,但它会导致IndexOutOfBoundsException而不是NPE。以下几点提示:1尝试使用更有意义的名称,这将使理解代码变得更容易。2调试代码以查看什么是空的,以及为什么是空的。3如果可以使用列表。正在与调试器斗争,但我打赌ajb是正确的,请继续其中大多数都只是占位符,试图将信息转换成正确的格式,所以这就是为什么名字会有点爆炸