我知道這個問題已經被問了一百萬次。而且我覺得這個解決方案對於幾個小時沒有注視過它的人來說是相當明顯的。但是,我無法讓自己超越界限的例外。以下是錯誤:Java數組列表outofbounds
exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 207493, Size: 207493
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at affysureselect.AffySureSelect.main(AffySureSelect.java:92)
Java Result: 1
我想也許這可能是由於到ArrayList的大小來發生的事情,但如果是這樣的話我本來期望的誤差加法的時候,而不是越來越成。這裏是它垂死代碼:
String chrompos;
ArrayList<String> chromnum = new ArrayList<String>();
while ((input2 = sbuff.readLine()) != null) {
prse = input2.split("\t");
chromnum.add(prse[0]);
...
chrompos = prse[7];
}
int cnt = 0;
int cnt2 = 0;
if (chromnum.get(cnt).equals(chrompos)) { // line causing my untimely death
end = Integer.parseInt(chromposend.get(cnt2));
start = Integer.parseInt(chromposstart.get(cnt2));
...
我甚至嘗試添加:
if (cnt <= chromnum.size()) { //this line
if (chromnum.get(cnt).equals(chrompos)) { /before the dying line
但它也死了,就弄,在追加。我錯過了什麼?
'System.out.println'列表中,你會看到你有更少的元素比你想象的 – slezica 2013-04-05 03:48:34
的問題是,你混淆了基於1的索引基於0的索引。如果你的列表有10個元素,元素存在的索引是'0-9'(當你使用'ArrayList.add(Object)'時,你的檢查確保'ArrayList'中的索引存在'如果(CNT
nickb
2013-04-05 03:50:57