我有一個ArrayList,它填補前人的精力一個TableModel的麻煩。 在第二個for循環的應用程序崩潰與拋出IndexOutOfBoundsException在一個ArrayList,同時檢查空,JAVA
java.lang.IndexOutOfBoundsException: Index: 14, Size: 14
第三次在
if (al.get(i + 4)!=null)
,我不知道爲什麼,因爲我在這種情況下是10,那麼它會檢查指數14 ,它實際上是空的。它應該進入else循環,但相反它崩潰。感謝您的幫助,這裏的代碼:
String[] teile = tabelleninhalt.split("#");
ArrayList<String> al = new ArrayList<String>();
for (int i = 1; i < teile.length; i++) {
al.add(teile[i]);
}
for (int i = 0; i < al.size(); i = i + 5) {
if (al.get(i + 4)!=null) {
tabModel.addRow(new Object[] { al.get(i), al.get(i + 1),
al.get(i + 2), al.get(i + 3), al.get(i + 4) });
} else {
tabModel.addRow(new Object[] { al.get(i), al.get(i + 1),
al.get(i + 2), al.get(i + 3) });
}
}
我很榮幸背後@JonSkeet只爲11秒IndexOutOfBoundException! :D – 2013-01-14 18:25:12
填充到表中的字符串是從文件中讀出的,並且有些部分可以保持打開狀態,所以它不一定是5的倍數。您的解決方案不起作用,因爲最後一行不會被填充。但是thx反正:) –
@MaikFruhner:那麼它不會拋出一個異常 - 它很難給當問題arne't指定的這些要求滿足要求的答案。你會計數任何缺失的字段有效空嗎? –