gpt4 book ai didi

Java 从多数组中选择一个随机项而不是再次使用它?

转载 作者:行者123 更新时间:2023-11-30 07:15:54 25 4
gpt4 key购买 nike

    private String[][] questions = 
{
{"Sky's color is black", "false"},
{"The earth is round.", "true"},
{"Google is written in PHP", "false"},
{"This program is written in JAVA", "true"},
{"Daniel is white", "true"}
};

public void selectRandomQuestion() {

}

我希望系统从数组中选择一个随机问题,选择之后,我想打印它+让系统记住这个问题已经打印过,所以系统不会再选择那个问题。

例子:

我得到了“Google 是用 PHP 编写的”这个问题,回答了它,现在我不能再得到这个问题了。当我的问题用完后,系统会将 boolean game 变为 false,因此游戏将结束。

我该怎么做?

最佳答案

到目前为止,实现此目的的最简单方法(但不是我推荐的方法)是使用 ArraylistString s 然后删除使用过的问题

public class Test { 
public static void main(String[] args) {

Random rnd=new Random();
ArrayList<String> questions = new ArrayList<String>();
ArrayList<Boolean> answers = new ArrayList<Boolean>();

questions.add("Question 1");
answers.add(true);

questions.add("Question 2");
answers.add(false);

while (array.isEmpty()==false){
int index=rnd.nextInt(questions.size());

String question=questions.get(index);
boolean answer=answers.get(index);

questions.remove(index);
answer.remove(index);

//do whatever with the question
}


}

}


面向对象的替代方案
然而,一个更好的面向对象的方法是创建一个对象来将问题和答案放在一起

public class QAndA {
public final String question;
public final boolean answer;

public QAndA(String question, boolean answer) {
this.question = question;
this.answer = answer;
}


}

然后将这些对象保存在 Arraylist

public class Test { 
public static void main(String[] args) {

Random rnd=new Random();

ArrayList<QAndA> array = new ArrayList<QAndA>();

array.add(new QAndA("Question 1",true));
array.add(new QAndA("Question 2",true));


while (array.isEmpty()==false){
int index=rnd.nextInt(array.size());

QAndA question=array.get(index);
array.remove(index);

//do whatever with the question
}


}

}

Arraylist 中删除对象这不是一个非常快速的选择,但考虑到 Arraylist很可能很短,这不太可能成为一个重要因素。如果是考虑其他一些集合。 QAndA 中的字段已声明 public作为 QAndA class 是一个美化的结构,再次考虑这是否适合您的使用。

关于Java 从多数组中选择一个随机项而不是再次使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17456090/

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