如果我初始化包含LatLng对象的ArrayList的ArrayList,LatLngs的ArrayLists是否设置为null或空?我想问的原因是因为当我检查确保第一个ArrayList为空时,我得到一个IndexOutofBoundsException(size = 0,index = 0)。这是否意味着当我第一次初始化对象时,所有的对象都被设置为空而不为空?所以我不必每次都初始化一个新的LatLng对象,也不需要初始化每个嵌套的ArrayList?初始化嵌套对象java
我初始化的对象:
public ArrayList<ArrayList<LatLng>> badSpots = new ArrayList<>();
int badArrayNum = 0;
当我得到异常:
if(badSpots.get(badArrayNum)!=null){
badSpots.get(badArrayNum).add(badArrayNum,new LatLng(newLat,newLon));
}
初始化只有一个级别。在你的例子中,你创建一个新的ArrayList,你可以在其中愉快地使用LatLng对象的ArrayLists。介意:你只创建了一个**空**列表;没有其他的。 – GhostCat
@Jägermeister那么如果我的badSpots不是空的,比如索引0处有一个数组列表,但索引1处不是数组索引1处的数组列表是空还是空? –
只需阅读集合的javadoc;答案是:这取决于。如果你只叫“添加”一次;那么大小是1;并且只能访问索引0。如果你两次调用“add”,那么size是2;并在索引1 ...你有什么你“添加”在那里。 – GhostCat