生成范围中的每个随机数

时间:2014-07-14 03:07:07

标签: java random range

我想在一定范围内得到每个随机数一次。

例如,如果范围是1-10,我会希望每个数字1-10以随机顺序排列。这样做的简单,快速,干净的算法是什么?

是否有一些现有的方法可以在Java中自动执行此操作?

2 个答案:

答案 0 :(得分:6)

填充包含1-10的数字的列表,然后使用Collections.shuffle(list);

答案 1 :(得分:1)

JDK没办法,但最简单的方法是在范围内所有数字的列表中使用Collections.shuffle()

List<Integer> list = new ArrayList<>();
for (int i = 1; i < 11; i++) list.add(i);
Collections.shuffle(list);

然后按顺序返回列表的内容