随机生成指定范围、数量的随机数方法

从网上找到的,原方法生成的随机数数量会比指定的小,在循环中加入判断后正常
public static void randomSet(int min, int max, int n, HashSet<Integer> set) {
    if (n > (max - min + 1) || max < min) {
        return;
    }
    for (int i = 0; i < n; i++) {
        if(set.size()==n){
            break;
        }
        // 调用Math.random()方法
        int num = (int) (Math.random() * (max - min)) + min;
        set.add(num);// 将不同的数存入HashSet中
    }

    // 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小
    if (set.size() < n) {
        randomSet(min, max, n, set);// 递归
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42348845/article/details/87911205