在Java中高效地生成随机非重复数列表
我需要在Java中尽可能高效地生成0到1000之间的非重复随机数列表。我现在只有两个想法,我想知道是否还有其他更好的想法,如果没有,我应该使用以下哪些想法
- 生成一个介于0和1000之间的随机数r,并将其添加到另一个名为randomArray[r]的数组中,该数组位于索引r处
- 生成另一个随机数,并检查randomArray[r]是否尚未存储先前生成的随机数
- 继续走,直到我做完
- 生成一个数组并用其索引填充其元素
- 疯狂地洗牌(还有,我怎样才能有效地做到这一点?)李>
- 使用数组中从头开始的元素值李>
谢谢
# 1 楼答案
java.util.Collections.shuffle方法以相同的可能性洗牌列表。创建一个列表并将值从0添加到1000。然后使用此方法洗牌列表
现在,列表中包含了经过洗牌的值