如果我初始化包含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