【发布时间】:2018-04-16 16:58:41
【问题描述】:
所以我有两个数组列表,一个是多维的,另一个只是一个数组列表。我似乎一直出现越界错误:
线程“主”java.lang.IndexOutOfBoundsException 中的异常:索引:1,大小:1 在 java.util.ArrayList.rangeCheck(未知来源) 在 java.util.ArrayList.get(未知来源) 在 is15147029.main(is15147029.java:303)
我不知道为什么,我在这里所做的是将另一个数组中的整数输入到数组列表中。我已经检查过该数组是否充满了整数,但是每当我尝试将整数添加到数组列表中时,都会出现错误。
ArrayList<Integer> selOrd = new ArrayList<Integer>();
ArrayList<ArrayList<Integer>> ordIndex = new ArrayList<ArrayList<Integer>>();
for(int i = 0; i < finalCost.length; i++) {
int lowCost = 0;
if(finalCost[i] > lowCost) {
lowCost = finalCost[i];
selOrd.add(0, finalCost[i]);
}
else if(finalCost[i] <= lowCost ) selOrd.add(finalCost[i]);
}
//Get Average Fitness Cost
for(int i = 0; i < finalCost.length; i++) total = total + finalCost[i];
avg = total/(finalCost.length);
//Sort into s1, s2, s3
for(int i = 0; i < selOrd.size(); i++) {
if(selOrd.get(i) > avg) ordIndex.get(0).add(selOrd.get(i));
if(selOrd.get(i) == avg) ordIndex.get(1).add(selOrd.get(i));
if(selOrd.get(i) < avg) ordIndex.get(2).add(selOrd.get(i));
}
将整数添加到 selOrd 时似乎出现错误。
Ant 帮助将不胜感激,我的代码中的另一个数组列表也有类似的问题。谢谢
【问题讨论】:
-
你为什么在
1开始你的柜台?ArrayList索引从0开始。 -
对不起,我的意思是改变它,只是测试一些东西
-
您是否仍然遇到该异常?堆栈跟踪会为您提供行号。
-
是的,行号是:if(selOrd.get(i) == avg) ordIndex.get(1).add(selOrd.get(i));
-
这意味着,
selOrd中只有一个元素,您正在尝试访问索引 1 元素(不存在的第二个元素)。
标签: java arrays arraylist indexoutofboundsexception