gpt4 book ai didi

java - 在 Java 中生成唯一随机数的更好方法

转载 作者:行者123 更新时间:2023-12-03 23:13:37 27 4
gpt4 key购买 nike

我需要指定范围内的唯一随机整数。我使用这个方法:

class Main
{
static final int RANGE = 100;

static int uniqueGenerator(int range_, boolean boolArr_[], Random rand_)
{
int tmpVar = rand_.nextInt(range_);
while (boolArr_[tmpVar] == true)
{
tmpVar = rand.nextInt(range_);
}
boolArr_[tmpVar] = true;
return tmpVar;
}

public static void main(String[] args)
{
Random rand = new Random();
boolean boolArr[] = new boolean[RANGE];
Arrays.fill(boolArr, false);
int ceiling = 10;
int tmp = Main.uniqueGenerator(ceiling, boolArr, rand);
System.out.println(tmp); => 5
ceiling = 20;
tmp = Main.uniqueGenerator(ceiling, boolArr);
System.out.println(tmp); => 17

}
}

看起来很麻烦。也许有人知道更好的方法?编辑:我在游戏代码中使用它,所以我需要最有效的解决方案。下面的答案建议初始化新列表,对其进行洗牌 => 太耗费资源/每次需要更改范围时都需要生成新列表。

最佳答案

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

关于java - 在 Java 中生成唯一随机数的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15309746/

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