如题 ,1000以内的三位数(0-999), 将生成出的三位数放到MAP的键中. 位不重复:例如110, 两位都是 1 ; 100 两位都是 0

解决方案 »

  1.   

    那你就用random 三次,生成一个随机数  *10   有重复的,则continue一下
    最后用string拼起来
      

  2.   

    for example
    List<Integer> list = new ArrayList<Integer>();
    List<Integer> result = new ArrayList<Integer>();
    Random r = new Random();
    for (int i=0; i<10; i++) { //准备0-9 10个数字
        list.add(i);
    }
    for (int i=0; i<3; i++) { //从10个数字中取3个,取走的是不会再存在集合里了,所以不会重复
        result.add(list.remove(r.nextInt(list.size())));
    }
    if (result.get(0) - 0 == 0) { //判断第一个数字是否为0,如果是,调整一下
        result.remove(0);
        result.add(0); //这里可以再做随机
    }int sum = 0;
    for (Integer i : result) { //把选出的3个数计算得到一个3位数
        sum = sum*10 + i;
    }
    return sum;