当前位置: 移动互联网学院 > Java培训 > JAVA开发 > Java生成不重复的随机数字代码实现
Java生成不重复的随机数字代码实现 时间:2017-08-31     来源:华清远见Java培训中心

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);

}}

X