我有这个我正在开发的代码。我想循环遍历两个数组列表,第一个列表我想查看每个条目,第二个我只想查看每个第三个条目,看看它们是否匹配。如果他们匹配,那么我想比较第二个列表中的其他两个条目。代码的问题在于“int result1 =”行,我无法理解为什么它会超出界限。任何帮助非常感谢!
for (int i = 0; i < array1.size(); i++){
for (int j = 3; j <array2.size(); j = j + 3) {
if ((array1.get(i)).equals(array2.get(j-3))){
int result1 = array2.get(j-1).compareTo(array2.get(j-2));
}
}
}
答案 0 :(得分:1)
这是一个扩展的评论,而不是答案。
很明显,发布的代码无法产生声明的异常。还有其他事情要发生。您需要准备一个产生异常的Simple, Self-Contained, Correct Example。以下是基于您发布的代码的程序示例,该代码不会重现该问题。您需要发布类似的内容,但需要有足够的实际代码才能获得异常。
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> array1 = new ArrayList<Integer>();
List<Integer> array2 = new ArrayList<Integer>();
for (int i = 0; i < 100; i++) {
array1.add(0);
array2.add(0);
}
int result = 0;
for (int i = 0; i < array1.size(); i++) {
for (int j = 3; j < array2.size(); j = j + 3) {
if ((array1.get(i)).equals(array2.get(j - 3))) {
int result1 = array2.get(j - 1).compareTo(array2.get(j - 2));
result += result1;
}
}
}
System.out.println(result);
}
}