
JAVA如何生成不重复随机数组
用户关注问题
如何确保Java中生成的随机数组元素不重复?
在Java中生成随机数组时,怎样的方法可以保证数组中的元素不会重复?
使用集合或标记法保证元素唯一
可以通过使用Set集合来存储随机生成的元素,因为Set天然不允许重复值。每次生成随机数后,尝试加入Set中,直到Set大小达到所需数组长度。或者采用标记法,如创建一个包含所有可能数值的列表,随机打乱后取前n个元素作为数组内容。
Java生成无重复随机数数组的高效实现方式有哪些?
想在Java中高效生成一个无重复的随机数数组,有哪些常用且性能较好的方法?
随机打乱数组或使用HashSet
一个高效实现是不重复的随机生成,可以先创建一个有序数组,包含所有可能的数字,然后使用Fisher-Yates算法对其进行随机打乱,最后取前n个元素。也可以用HashSet存储临时随机数,避免重复但在元素接近时性能可能下降。
怎样控制Java随机数组的大小和元素范围同时避免重复?
在Java中生成指定大小且元素不重复的随机数组,如何设定元素取值范围而避免生成失败?
保证范围大小不小于数组长度
必须保证随机数的取值范围大小至少与数组长度相等,否则无法生成不重复元素。如果数组长度大于范围,则必然出现重复。若范围足够大,可以先生成完整范围数组,随机打乱,再选取需要长度的片段。