【发布时间】:2016-04-15 01:03:07
【问题描述】:
import java.util.Random;
import java.util.ArrayList;
public class Game {
ArrayList<Integer> numere = new ArrayList<>();
ArrayList<Bila> balls = new ArrayList<Bila>();
ArrayList<String> culori = new ArrayList<>();
Random random = new Random();
int nrBalls=0;
public void createColours(){
for(int i=0;i<7;i++){
culori.add("Portocaliu");
culori.add("Rosu");
culori.add("Albastru");
culori.add("Verde");
culori.add("Negru");
culori.add("Galben");
culori.add("Violet");
}
}
public void createNumbers(){
for(int i=1;i<50;i++){
numere.add(i);
System.out.print(numere.size());
}
}
public void createBalls(){
while(nrBalls<36){
int nr =numere.get(random.nextInt(numere.size()));
numere.remove(nr);
String culoare =culori.get(random.nextInt(culori.size()-1));
culori.remove(culoare);
balls.add(new Bila(culoare,nr));
nrBalls++;
}
}
}
所以我有另一个带有 main 方法的类,在该类中我调用 createNumbers()、createColours()、createBalls()。当我运行程序时,我在 numere.remove(nr) 处得到一个 IndexOutOfBoundsException,说 index:a number和大小:另一个数字..总是第二个数字小于第一个数字..为什么会发生这种情况?我哪里错了?
【问题讨论】:
-
@Tunaki 这在我看来并不重复。 “第一个问题”是关于“导致 java.lang.ArrayIndexOutOfBoundsException 的原因以及如何防止它”,而这个问题是关于“当您尝试在整数列表上调用 remove 方法时,为什么有时会出现 ArrayIndexOutOfBoundsException”。是我,还是那个……他们不是重复的?