Java有专门的随机数函数,但是有的时候真的是太随机了,导致生成的随机数中有不少重复的。那么如何如何保证生成的随机数不重复呢?今天华清Java学院小编就和和大家分享下Java生成不重复的随机数字代码实现。
java生成不重复的随机数字的设计思路:
给定大的随机数值以后,根据当前数值生成一个数组A来存储这些数字,通过随机产生数组下标的方式来取得随机数,并放入B数组中,同时把A数组的后一个数字放入已经取走的随机数的位置,然后数组下标减1.
java生成不重复的随机数字的具体实现代码:
import java.util.Arrays;
public class RandomUtil {
public static int[] generate(int min, int max, int size) {
if (min > max || max - min + 1 < size) {
return new int[0];
}
int[] result = new int[size];
int[] resource = new int[max];
for (int i = min; i <= max; i++) {
Arrays.fill(resource, i - 1, i, i);
}
for (int i = 0; i < result.length; i++) {
int random = (int) (Math.random() * max);
result[i] = resource[random];
resource[random] = resource[max - 1];
max--;
}
return result;
}
public static void main(String[] args) {
//1-100,生成10个随机数
Arrays.stream(generate(1, 100, 10)).forEach(System.out::println);
}}
热点新闻