gpt4 book ai didi

java - 从 ArrayList 获取随机项

转载 作者:行者123 更新时间:2023-12-02 11:38:53 24 4
gpt4 key购买 nike

我想从 ArrayList 中选择一个随机字符串,然后打印该字符串。这是我的代码:

 public class Operator {

Random rand = new Random();
ArrayList<String> myArray = new ArrayList<String>();
public void CreateArrayList() {
myArray.add("add");
myArray.add("subtract");
myArray.add("multiply");
myArray.add("divide");
myArray.add("remainder");
myArray.add("greaterthan");
myArray.add("lessthan");
myArray.add("max");
myArray.add("min");
myArray.add("power");
try {
FileReader inFile = new FileReader("data/numbers2.txt");
Scanner scanner = new Scanner(inFile);
String line = scanner.nextLine();
System.out.println(line);

scanner.close();
}
catch (Exception ex) {
ex.printStackTrace();}
}
{

}

public void showOperations() {
int x = (int) Math.floor(Math.random()*10);
int y = (int) Math.floor(Math.random()*10);
int z = rand.nextInt(10);
System.out.println(x+" "+ myArray.get( z )+" "+ y );
}
}

输出应为“3 add 4”。然而,每次我运行代码时,我都会得到

线程“main”中的异常java.lang.IndexOutOfBoundsException:索引:4,大小:0,位于java.util.ArrayList.rangeCheck(未知来源),位于java.util.ArrayList.get(未知来源),位于hw2p2.Operator.showOperations(Operator.java:42) 在 hw2p2.Launcher.main(Launcher.java:9)

最佳答案

rand.nextInt(10); 获取一个随机数,与列表的内容无关。

您需要使用 myArray.size() 传递列表的大小,而不是字面上的 10

其次,如果您希望代码执行除从空列表中选择随机元素之外的任何操作,则需要调用其他方法

这是一个列表,而不是一个数组

关于java - 从 ArrayList<String> 获取随机项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48724032/

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