我很难确定如何将对象添加到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);
我收到NullPointerException。
我做错了什么?
答案 0 :(得分:0)
您正设置在arraylist中不存在的位置,可能是您需要&#34;添加&#34;。
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());
}
}
您还需要创建A类对象,不能设置A.
答案 1 :(得分:0)
我猜你可能会得到java.lang.IndexOutOfBoundsException
。这是因为在matrix.add(new ArrayList<A>());
新添加的ArrayList&gt;大小为0之后。
set方法在将元素设置在上述位置之前首先检查AraayList的大小。
public E set(int paramInt, E paramE) {
RangeCheck(paramInt);
Object localObject = this.elementData[paramInt];
this.elementData[paramInt] = paramE;
return localObject;
}
private void RangeCheck(int paramInt) {
if (paramInt < this.size)
return;
throw new IndexOutOfBoundsException("Index: " + paramInt + ", Size: "
+ this.size);
}
由于新添加的ArrayList的Size为0,因此抛出java.lang.IndexOutOfBoundsException
。
因此,在设置元素之前,请确保使用add方法将元素添加到ArrayList。