2014-09-25 41 views
1

我受到這個錯誤的困擾。ArrayList java.lang.ArrayIndexOutOfBoundsException:length = 10; index = 10

java.lang.ArrayIndexOutOfBoundsException: length=10; index=10 

下面是導致異常的代碼。 'keys'是一個ArrayList。

for (int i = 0; i < keys.size(); i++) { 
     if (values[i] != null) { 
      contentValues.put(keys.get(i), String.valueOf(values[i])); 
     } 
    } 

什麼可能導致這outOfBoundsException?

+0

這個錯誤是哪一行? – 2014-09-25 18:36:06

+0

你不是邊界 - 檢查你對'values'的訪問。 – rgettman 2014-09-25 18:36:53

+0

你的值數組是10個元素長,從0開始併到9。它看起來像'keys'是11個元素長 - 這就是爲什麼你最終會'i == 10'。你在哪裏定義密鑰? – thegrinner 2014-09-25 18:41:44

回答

1

這個錯誤很自我解釋。您嘗試訪問的索引不存在。 Java使用基於零的索引。這意味着,如果你有大小10的東西,它的指數是0-9

在你for循環,你永遠不會檢查是否values[i]可以上升到10;這顯然不能。

從外表看,values[]的尺寸爲10,而keys較大。

+1

謝謝。我不敢相信我沒有注意到這一點。 – 2014-09-25 18:46:58

1

我的猜測是錯誤是在if聲明。你怎麼知道values[i]存在?你沒有迭代values,你正在迭代keys

但是,您還沒有給我們足夠的信息來確認。這發生了什麼?

相關問題