luanshils 发表于 2019-8-12 20:27

Intel idea问题求助

本帖最后由 luanshils 于 2019-8-12 23:42 编辑

代码如下:import java.util.ArrayList;
import java.util.Random;
//新建一个大集合,大集合内包含100之间的随机数,取指偶数到小的array集合当中

public class ceshi8 {
    public static void main(String[] args) {
      ArrayList<Integer> Bjihe = new ArrayList<>();
      ArrayList<Integer> sjihe = new ArrayList<>();
      Random suiji = new Random();

      for (int i = 0; i < 20; i++) {
            Bjihe.add(suiji.nextInt(20)+1);
      }
      for (int i = 0; i < 20; i++) {
            if ((Bjihe.get(i) % 2) == 0) {
                sjihe.add(Bjihe.get(i));
            }
      }
      for(int i=0;i<20;i++){
            System.out.print(sjihe.get(i)+",");
      }

    }
}


运行结果也出来了,但是随之出来的错误信息我看的有点蒙圈



明白了,数组越界

wjw0716 发表于 2019-8-12 20:52

for(int i=0;i<100;i++){
            System.out.print(sjihe.get(i)+",");
}

sjihe在get的时候越界了

空心人i 发表于 2019-8-12 20:59

数组下标越界,我感觉问题出在了随机数上,我也是小白

码代码的小菜鸟 发表于 2019-8-12 21:00

数组越界

w5185552 发表于 2019-8-12 21:53

本帖最后由 w5185552 于 2019-8-12 21:55 编辑

输出数组的时候报错了,输出的次数大于集合的长度了,下标越界了

zzg1122 发表于 2019-8-13 10:30

sjihe最多也就10个,你让它输出20个数字,所以就越界了

luanshils 发表于 2019-8-13 11:24

zzg1122 发表于 2019-8-13 10:30
sjihe最多也就10个,你让它输出20个数字,所以就越界了

明白了,感谢
页: [1]
查看完整版本: Intel idea问题求助