以随机顺序打印数组中的字符串(java)

时间:2015-03-12 17:57:44

标签: java

我有这个学校的分配因为我必须制作一个小程序,它会问你一个问题,列出可能的答案,你必须输入答案的编号。 如果不是两件事,那就不会有什么问题了:

- 每次提出问题时,答案必须以不同的顺序显示

- 老师给了我们一个特定的类/方法结构,我们必须遵循

  • 输入/输出
  • "逻辑"上课:
    • constructor(String question,String [] answers,int indexOfTheCorrectAnswer)
    • public String getQuestion
    • public String [] getAnswers
    • public String getCorrectAnswer
    • public boolean controlAnswer
    • private void randomize
你可以告诉我一种随机化的方法吗?其余的不是要解决的问题

4 个答案:

答案 0 :(得分:1)

集合有shuffle方法,可以从你自己的Test类中创建一个ArrayList。

答案 1 :(得分:1)

templated Collections.shuffle是您可以使用的方法。

实际上你应该只使用它,因为它是专门为此设计的。底层是相当优化的随机算法。虽然您可以通过覆盖特定方法来自定义算法。

http://www.tutorialspoint.com/java/util/collections_shuffle.htm 这是一个可以参考的示例,它会对列表进行随机播放。

希望有所帮助。

答案 2 :(得分:0)

查看java.util.Random以获取随机数。

Random rnd = new Random(new Date().getTime());

newDate()部分为随机数生成器播种,因此每次运行程序时它都不会具有完全相同的值。

然后我会做以下事情:

  1. 在我的课堂上,在随机化之前指出正确的答案。
  2. 将答案复制到ArrayList。
  3. 然后做一个循环。虽然#2中的数组中仍有内容,但生成随机数0< = rnd<计算并将其用作该数组中的索引,以将值复制到新数组中。
  4. 您现在可以随机获得答案。

答案 3 :(得分:0)

String[] answers = new String[5];

//assume your array gets populated here...

//convert to a List so we can use Collections.shuffle()
List<String> answersList = Arrays.asList(answers);
Collections.shuffle(answersList);

//converting back to an array (although I'd avoid working with arrays alltogether if possible)
String[] shuffledAnswers = answersList.toArray(answers);