问题描述:[color=#FF00FF]想从1--100之间随机不重复的20个数,赋给a[ ]数组,如何实现?
Random是否有直接实现的函数?
还是要通过这样的思路解决:随机1个数,然后与现有的a[ ]逐个比较,如未有重复则放入a[ ],如重复则再随机——如此循环···如果要这样的话,不是多出不少开销吗? [/color]

解决方案 »

  1.   

    HashSet set = new HashSet();
    ser.add(你得到的随机数);
      

  2.   

    HashSet类好像实现叻 equals()方法吧. 还是要比较里面的元素是否相等.
    不比较里面的元素. 怎么能够知道是否相同.!
    所以你可以从匹配的算法上面进行优化吧.
      

  3.   

      Random rd = new Random();Set set = new HashSet();      //存放不重复的20个数字while(true){
        if(set.size()==20){
            return;
        }    int r = rd.nextInt(99)+1;
        set.add(r);
        
    }