Java 数组列表循环超出范围

Java 数组列表循环超出范围,java,loops,arraylist,compareto,Java,Loops,Arraylist,Compareto,我在下面开发了这个代码。我想循环两个数组列表,第一个列表我想查看每个条目,第二个列表我只想查看每个第三个条目,看看它们是否匹配。如果它们确实匹配,那么我想比较第二个列表中的其他两个条目。代码的问题在于“int result1=”行,我不理解为什么它会说越界。非常感谢任何帮助 for (int i = 0; i < array1.size(); i++){ for (int j = 3; j <array2.size(); j = j + 3) { if ((a

我在下面开发了这个代码。我想循环两个数组列表,第一个列表我想查看每个条目,第二个列表我只想查看每个第三个条目,看看它们是否匹配。如果它们确实匹配,那么我想比较第二个列表中的其他两个条目。代码的问题在于“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));
        }
    }
}
for(int i=0;i对于(int j=3;j这是一个扩展的注释,而不是答案

很明显,发布的代码无法生成声明的异常。还有其他原因。您需要准备一个生成异常的程序。下面是一个基于您发布的代码的程序示例,该程序不会重现问题。您需要发布类似的内容,但实际代码足以生成异常

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);
  }
}
import java.util.ArrayList;
导入java.util.List;
公开课考试{
公共静态void main(字符串[]args){
List array1=新的ArrayList();
List array2=新的ArrayList();
对于(int i=0;i<100;i++){
阵列1.添加(0);
阵列2.添加(0);
}
int结果=0;
对于(int i=0;i
错误的错误报告。您报告的代码永远不会触发索引超出范围。您共享了所有内容吗?是的,这是错误,返回到int result1行…线程“main”中的异常java.lang.IndexOutOfBoundsException:如果我注释掉int结果行,它工作正常,没有错误该错误可能是因为您使用j进行了魔术操作-index@Caz.你真的错过了一些东西。你错过了在这里发布你真正的代码。因为显示的代码不会抛出你所说的异常。我所做的是我已经接受了这一行完全抛出异常,并用一些if语句代替它,而不是使用compare to,现在工作得很好。无论如何,感谢您的所有时间!