-1

私は以下で開発しているこのコードを持っています。最初のリストはすべてのエントリを調べ、2 番目のリストは 3 つおきのエントリのみを調べて、それらが一致するかどうかを確認します。一致する場合は、2 番目のリストの他の 2 つのエントリを比較します。コードの問題は「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));
        }
    }
}
4

1 に答える 1

1

これは拡張コメントであり、回答ではありません。

投稿されたコードが記載された例外を生成できないことは明らかです。他に何かが起こっています。例外を生成する、単純で自己完結型の正しい例を準備する必要があります。これは、問題を再現しない、投稿したコードに基づくプログラムの例です。似たようなものを投稿する必要がありますが、例外を取得するのに十分な実際のコードが含まれています。

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);
  }
}
于 2012-12-12T15:12:46.447 に答える