random.next如何避免重复值问题

   2024-10-07 2140
核心提示:要避免重复值问题,可以采取以下方法:使用Set来存储已经生成过的随机数,每次生成随机数之前先检查Set中是否包含这个随机数,如

要避免重复值问题,可以采取以下方法:

使用Set来存储已经生成过的随机数,每次生成随机数之前先检查Set中是否包含这个随机数,如果包含则重新生成一个新的随机数。
Set<Integer> set = new HashSet<>();Random random = new Random();int nextRandom;do {    nextRandom = random.nextInt();} while(set.contains(nextRandom));set.add(nextRandom);
可以将生成的随机数存储到一个数组中,每次生成随机数之前先从数组中随机选择一个值,并将其与数组最后一个元素进行交换,随机数的范围缩小到数组中前面的元素。
int[] randomArr = new int[N];for (int i = 0; i < N; i++) {    randomArr[i] = random.nextInt();}int nextRandom = randomArr[N - 1];int index = random.nextInt(N - 1);int temp = randomArr[index];randomArr[index] = randomArr[N - 1];randomArr[N - 1] = temp;

这样每次生成的随机数都不会重复,可以有效避免重复值问题。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号