ArrayList:IndexOutOfBounds 异常问题 [英] ArrayList: IndexOutOfBounds exception issue

查看:26
本文介绍了ArrayList:IndexOutOfBounds 异常问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个程序来查找素数.我将质数和所有正整数(现在到 100)存储在两个 ArrayList 中.代码如下:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆