ArrayList:IndexOutOfBounds异常问题 [英] ArrayList: IndexOutOfBounds exception issue
问题描述
我正在编写一个查找素数的程序.我将质数和所有正整数(现在到100)存储在两个ArrayList<Integer>
中.这是代码:
I'm making a program to find prime numbers. I'm storing the prime numbers and all positive integers (right now till 100) in two ArrayList<Integer>
. Here's the code:
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);
}
}
但是当我运行程序时,出现以下错误:
But when I run the program, these errors show up:
线程"main"中的异常java.lang.IndexOutOfBoundsException:索引:3,大小:3 在java.util.ArrayList.rangeCheck(ArrayList.java:653) 在java.util.ArrayList.get(ArrayList.java:429) 在PrimeNumbers.main(PrimeNumbers.java:14)
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 at java.util.ArrayList.rangeCheck(ArrayList.java:653) at java.util.ArrayList.get(ArrayList.java:429) at PrimeNumbers.main(PrimeNumbers.java:14)
出了什么问题?
推荐答案
列表索引从0到size()-1
,但是您从1到size()
.
List indices run from 0 to size()-1
, but you are looping from 1 to size()
.
这篇关于ArrayList:IndexOutOfBounds异常问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!