在下面的代碼中,我從一個數組列表中刪除項目,但在此之前,我檢查獲取索引,如果它存在(非空)然後我調用remove方法。但我得到一個java.lang.ArrayIndexOutOfBoundsException,即使我檢查爲空...我無法弄清楚爲什麼會發生這種情況。請幫幫我!!java.lang.ArrayIndexOutOfBoundsException ...不知道爲什麼
private List<MyObject>[] arraylist;
// ... in the constructor the arraylist is initialized as follows:
this.arraylist = new ArrayList[SIZE];
for(int i = 0; i < SIZE; i++){
this.arraylist[i] = new ArrayList<MyObject>();
}
//
public Integer getIndex(int num){
for(int i = 0; i < this.arraylist.length; i++){
if(this.arraylist[i].size() > 0 && this.arraylist[i].get(0).getNum() == num){
return i;
}
}
return null;
}
public void myRemoveMethod(int num){
Integer index = this.getIndex(num);
if(index != null){
MyObject myObject= this.arraylist[index].remove(0); // **getting java.lang.ArrayIndexOutOfBoundsException**
//... do some other stuff
}
}
這是一些很混亂的代碼。我建議不是單步執行它,就是放入一些printlns;很有可能你沒有按照自己的想法去做,但是因爲你知道自己在做什麼,所以它應該很容易調試。我不。 –
您是否嘗試過調試它,以確切地查看正在使用的值?也。 ArrayLists數組......真的嗎? – M21B8
我建議花時間學習列表的工作方式。猜測讓你陷入麻煩。 – kviiri