gpt4 book ai didi

java - java中ArrayList生成除0之外的随机数

转载 作者:行者123 更新时间:2023-12-01 13:59:43 25 4
gpt4 key购买 nike

static ArrayList<Integer> usedArray = new ArrayList<Integer>();

public static void arrayContents(){

usedArray.add(2, 2);
usedArray.add(1, 1);

}

public static void app(){

Random generator = new Random ();

int randomNumber = generator.nextInt(usedArray.size());

System.out.println(usedArray);

System.out.println(randomNumber);


if(randomNumber == 2){
score();
question2();
usedArray.remove(2);
app();
}

.add(2, 2)

我收到错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 0

但是使用

.add(2)

0 作为数组的一部分生成,即使它不是数组中保存的值。默认情况下数组是否始终包含 0?有什么方法可以解决此问题,以便无法生成 0 作为随机数?

最佳答案

您遇到此问题是因为当您创建 arraylist 时它的大小为零,然后调用 usedArray.add(2, 2); 您正在尝试更新 arraylist 中的第二个位置与整数 2;但正如我所说,arraylist 目前没有 2 号插槽。除非您有理由使用 .add(index, object) 方法,只需正常添加它们,如 .add(object)

usedArray.add(2, 2); //<-- here you update slot 2, putting Integer 2 in it, there is no slot 2 at this point

如果这只是一个可用随机数列表,您可以直接使用;

usedArray.add(1);
usedArray.add(2);

现在数字 1 和 2 在数组列表中可用。

然后可以从数组列表中随机获取这些:

int randomNumber = usedArray.get(generator.nextInt(usedArray.size()));

在此示例中,generator.nextInt(usedArray.size() 将生成数字 0 或 1,这将从数组列表中分别获取 1 或 2

关于java - java中ArrayList生成除0之外的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com