2016-11-18 33 views
1
private void removeQueue(Queue queue) 
    { 
     queue.setTodoDeleted(false); 
     if (queueIndex != -1) { 
      this.queueList.add(queueIndex , queue); 
      mItemManger.closeAllItems(); 
     } 
    } 

其中queueList是ArrayList的queue ArrayList queuelistIndexOutOfBoundException在隊列中添加時

問題:索引爲2和列表大小爲1,同時加入在queueList所以,IndexOutOfBoundException拋出在線路
this.queueList.add(queueIndex , queue)

避免這種情況的最佳方法是什麼?在先進的感謝

+0

'queueIndex'來自哪裏?它應該遵循'隊列'大小... – AxelH

+0

索引是2並且列表大小是1,您正試圖獲取不存在的元素 – Venkat

回答

2

爲了避免IndexOutOfBounds問題,檢查實際大小和索引,你會在執行操作前使用。

if (queueList.size()>queueIndex) 
{ 
    this.queueList.add(queueIndex , queue); 
} 
// Add else part if needed 
+0

謝謝,venkat使用它的工作不會引發異常。 – Swift

+1

@Swift你應該試圖找到**爲什麼** queueIndex比實際大小更大。 – AxelH