生成不重复随机数的 Java 方法
在 Java 中创建一组唯一的随机数可能是一个挑战。考虑以下场景,我们需要用 10,000 个范围从 0 到 9999 的非重复整数填充数组。
以下代码片段尝试使用 Java 内置的 Random 类解决此问题:
import java.util.Random; public class Sort { public static void main(String[] args) { int[] nums = new int[10000]; Random randomGenerator = new Random(); for (int i = 0; i < nums.length; ++i) { nums[i] = randomGenerator.nextInt(10000); } } }
但是,由于使用模运算将随机数映射到所需范围时可能发生冲突,此代码可能会产生重复的数字。为了确保数字的唯一性,我们可以利用 Java 的 Collections 类。
使用 Java Collections.shuffle() 的解决方案
Java 中生成不重复随机数的首选方法是利用 Collections.shuffle() 方法。它的工作原理如下:
例如,以下代码片段演示了此方法:
public static void main(String[] args) { Integer[] arr = new Integer[1000]; for (int i = 0; i < arr.length; i++) { arr[i] = i; } Collections.shuffle(Arrays.asList(arr)); System.out.println(Arrays.toString(arr)); }
这种方式保证了数组中每个数字都是唯一的,满足生成不重复随机数的要求。
以上是如何在Java中生成不重复的随机数?的详细内容。更多信息请关注PHP中文网其他相关文章!