请问各位大侠,怎样才能产生一组绝不重复的随机数阿?

解决方案 »

  1.   

    每次产生一个随机数,存入HashSet,下一次产生的数先到HashSet中判断是否已经containts,是的话重新产生
      

  2.   

    //刚学java的时候写的
    /**
     * @description 随机数的生成
     * @return 
     * @throws Exception
     */
    public static String getRandom(int intValue)throws Exception {
    double dRandom = Math.random()*intValue;
    //return Math.round(dRandom)+"";
    return String.valueOf(Math.round(dRandom));
    } /**
     * @description 双色球福彩
     * @param type:单式投注,复式投注(红色球号码复式,蓝色球号码复式,全复式)
     * @return 
     * @throws Exception
     * @re 红色球号码从1—33;蓝色球号码从1—16;;红色球号码中选择6个号码,从蓝色球号码中选择1个号码
     */
    public void doubleColorWealLottery(String type)throws Exception {
    int redMax = 33;
    int greenMax = 16;
    //生成6个红色球号码 && 1个蓝色球号码
    String[] redNum = new String[6];
    String greenNum = null;
    boolean flag = false;
    //生成6个号码不相同红色球
    for(int i = 0;i < 6;i++) {
    int redCount = 0;
    redNum[i] = String.valueOf(Integer.parseInt(getRandom(redMax-1))+1);
    while(redCount < i) {
    if(redNum[redCount].equals(redNum[i])) {
    redNum[i] = String.valueOf(Integer.parseInt(getRandom(redMax-1))+1);
    redCount = 0;
    } else {
    redCount++;
    }
    }
    }
    System.out.print("redNum=  ");
    for (int j = 0; j < 6; j++) {
    System.out.print(redNum[j]+"   ");
    }
    System.out.println("  greenNum=   "+String.valueOf(Integer.parseInt(getRandom(greenMax-1))+1));

    }