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++;
}
}
}
Так у меня есть еще один класс с основным методом и в этом классе я называю createNumbers(), createColours(), createBalls(). При запуске программы я получаю IndexOutOfBoundsException на numere.remove (nr), говорящий индекс: число и размер: другой номер .. всегда второе число меньше первого числа. Почему это происходит? Где я ошибаюсь?удаление целого числа от ArrayList IndexOutOfBoundsException
да, я хочу, чтобы он удалил число в моем архаристе в этой позиции –
@BaiRadule, предоставил обновленный ответ с немного более подробным объяснением. По сути, исходный код взял ** значение ** из массива, а затем попытался удалить из индекса, что ** значение **, а не местоположение индекса. – KevinO
спасибо, человек, это ответ, который я искал –