一尘不染

ArrayList:IndexOutOfBounds异常问题

java

我正在编写一个查找素数的程序。我将素数和所有正整数(现在到100)存储为两个ArrayList<Integer>。这是代码:

import java.util.ArrayList;
public class PrimeNumbers { 
static ArrayList<Integer> num = new ArrayList<Integer>();
static ArrayList<Integer> prime = new ArrayList<Integer>();
public static void main(String[] args) {
    prime.add(2);
    prime.add(3);
    prime.add(5);
    for (int z = 1; z<=100; z++){
        num.add(z);
    }
    outer: for (int a = 1; a <=num.size(); a++){
        inner: for (int b = 1; b <=prime.size(); b++){
            if (num.get(a)%prime.get(b) != 0){//line 14
                if (prime.indexOf(b)+1 == prime.size()){
                    prime.add(a);
                    continue outer;
                }
                else 
                    continue inner;
            }
            else
                continue outer;
        }
    }
    System.out.println(prime);

    }
}

但是,当我运行该程序时,出现以下错误:

线程“主”中的异常java.lang.IndexOutOfBoundsException:索引:3,大小:3 at
java.util.ArrayList.rangeCheck(ArrayList.java:653)at
java.util.ArrayList.get(ArrayList.java:429)
PrimeNumbers.main(PrimeNumbers.java:14)

怎么了?


阅读 254

收藏
2020-12-03

共1个答案

一尘不染

列表索引从0到size()-1,但从1到size()

2020-12-03