/**
* 随机指定范围内 N 个不重复的数
* @param min 指定范围最小值
* @param max 指定范围最大值
* @param n 随机数个数
*/
public static Integer[] randomCommon(int min, int max, int n) {
Random rand = new Random();
if (n > (max - min + 1) || max < min) {
return null;
}
Integer[] result = new Integer[n];
int count = 0;
while (count < n) {
// MIN 和 MAX 范围内的随机数
int num = rand.nextInt(max - min + 1) + min;
boolean flag = true;
for (int j = 0; j < n; j++) {
if (null != result[j] && num == result[j]) {
flag = false;
break;
}
}
if (flag) {
result[count] = num;
count++;
}
}
return result;
}
验证:
public static void main(String[] args) {
Integer[] r = randomCommon(0, 10, 3);
for (int i = 0; i < r.length; i++) {
System.out.println(r[i]);
}
}