Java 尝试在多维ArrayList中设置元素时出现NullPointerException
我很难想出如何将对象添加到ArrayList的ArrayList中 当我尝试时: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<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());
}
}