我正在编写一个查找素数的程序。我将素数和所有正整数(现在到100)存储为两个ArrayList<Integer>。这是代码:
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)
怎么了?
列表索引从0到size()-1,但从1到size()。
size()-1
size()