我想在一定范围内得到每个随机数一次。
例如,如果范围是1-10,我会希望每个数字1-10以随机顺序排列。这样做的简单,快速,干净的算法是什么?
是否有一些现有的方法可以在Java中自动执行此操作?
答案 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);
然后按顺序返回列表的内容