利用set存储的数据不能重复的特性,获取指定个数的不重复的随机数
/**
* 产生指定范围指定个数的随机数
* @param num 指定个数
* @param max 指定范围最大值
* @return
*/
public static Set<Integer> generateRandomNumbers(int num, int max) {
if (num > max) {
throw new IllegalArgumentException("指定个数必须不大于范围最大值");
}
//定义存储随机数得set
Set<Integer> set = new HashSet<>();
Random random = new Random();
//如果set中的随机数个数小于指定得个数,需要生成一个随机数放入set中
while (set.size() < num) {
Integer numData = random.nextInt(max) + 1;
set.add(numData);
}
return set;
}