Java 尝试在多维ArrayList中设置元素时出现NullPointerException

Java 尝试在多维ArrayList中设置元素时出现NullPointerException,java,arraylist,Java,Arraylist,我很难想出如何将对象添加到ArrayList的ArrayList中 当我尝试时: ArrayList<ArrayList<A>> matrix = new ArrayList<ArrayList<A>>(); matrix.add(new ArrayList<A>()); matrix.add(new ArrayList<A>()); matrix.add(new ArrayList<A>()); matri

我很难想出如何将对象添加到ArrayList的ArrayList中

当我尝试时:

ArrayList<ArrayList<A>> matrix = new ArrayList<ArrayList<A>>();

matrix.add(new ArrayList<A>());
matrix.add(new ArrayList<A>());
matrix.add(new ArrayList<A>());

matrix.get(0).set(0, A);
ArrayList矩阵=新的ArrayList();
add(新的ArrayList());
add(新的ArrayList());
add(新的ArrayList());
矩阵get(0)、set(0,A);
我得到一个NullPointerException


我做错了什么?

您设置的位置不在arraylist中,可能是您需要“添加”

import java.util.ArrayList;
A类{}
公共类arrlst{
公共静态void main(字符串[]args){
ArrayList矩阵=新的ArrayList();
add(新的ArrayList());
add(新的ArrayList());
add(新的ArrayList());
/*矩阵.get(0).set(1,新的A())*/
matrix.get(0).add(新的A());
}
}

您还需要创建类A的对象,不能设置A。

我想您可能会得到
java.lang.IndexOutOfBoundsException
。这是因为在
matrix.add(newarraylist())之后新添加的ArrayList的大小为0。
set方法在将元素设置到所述位置之前,首先检查araylist的大小

public E集(int参数,E参数){
范围检查(参数);
Object localObject=this.elementData[paramInt];
this.elementData[paramInt]=参数;
返回localObject;
}

private void RangeCheck(int参数){
if(paramInt

由于新添加的ArrayList的大小为0,因此会抛出
java.lang.IndexOutOfBoundsException


因此,在设置元素之前,请确保使用add方法将元素添加到ArrayList。

我不相信您会得到NPE。
import java.util.ArrayList;

class A{}

public class arrlst {

    public static void main(String[] args) {
        ArrayList<ArrayList<A>> matrix = new ArrayList<ArrayList<A>>();

        matrix.add(new ArrayList<A>());
        matrix.add(new ArrayList<A>());
        matrix.add(new ArrayList<A>());

        /*matrix.get(0).set(1, new A());*/
        matrix.get(0).add(new A());

    }

}