JAVA产生20个0到100的随机数,要求这20个数不能出现重复的数

如题所述

如果只是20个的话,有个很简单的办法。
你定义一个Set集合,把每次产生的0-100的随机数放入Set集合中,直到set.size()=20。

原理:利用Set集合如果放入重复的数时,后来的数会顶替掉前面的数。

代码很简单,还用贴么追问

并不太懂程序(汗颜)
能不用set就只用for语句和数组么?
真心听不懂程序课了

追答

先把无脑Set的方法给你贴一下吧,只用for的我再给你写一下....其实都很简单

public class NoRepeat {
    public int[] getArray(int len){  //len为需要产生的不重复随机数个数
        Set<Integer> set = new HashSet<Integer>();
        Random random = new Random();
        int[] array = new int[len];
        int num = 0;
        for(;true;){
            num = random.nextInt(100);
            set.add(num);
            if(set.size()>=20){
                break;
            }
        }
        int i=0;
        for(int a : set){
            array[i] = a;
            i++;
        }
        return array;
    }
    
    public static void main(String[] args) {
        NoRepeat n = new NoRepeat();
        int[] array = n.getArray(20);
        System.out.println(array.length);
        for(int a : array){
            System.out.print(a+" ");
        }
    }
}

追问

哇谢谢~求只用for(恳求脸)
PS:怎么学好程序啊……还有几周就考试了可我什么都不会啊TAT

追答

也是醉了。。。提交了半天发现字数超出限制 我给你放文件里,你下载吧


想学好程序多学思想就可以了

追问

嗯嗯谢谢啦

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答