如果外部ArrayList的大小是已知的,並修復,那麼我會建議你使用數組而不是ArrayList,如下所示。
int size = 10;
ArrayList<Short>[] VOL_2D = new ArrayList<Short>[size];
爲什麼您需要撥打ensureCapacity(int minCapacity)
?你能詳細說明你的用例嗎?因爲當你創建實例時,你可以指定ArrayList的大小。像下面
VOL_2D[0] = new ArrayList<Short>(30);
這將調用下面的構造,創造的30
public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
}
數組大小要回答你的問題,沒有一個統一的內置方法,該方法將遍歷在列表中的所有元素調用ensureCapacity。
你需要編寫代碼這一點,像下面
for(ArrayList<Short> vol : VOL_2D){
vol.ensureCapacity(30);
}
記住這一點,之前調用的ensureCapacity方法,你需要初始化ArrayList對象(在你的情況下,所有內部ArrayList對象),否則你將結束與NullPointerException。
你是什麼意思'尚未初始化? – AdamSkywalker
你打算如何調用一個不存在的對象的方法? –