大家好!我是一个Java的初学者,现在正在完成一项作业。程序当中需要用到0-100的随机数若干次,但是每次抽取的结果不能重复,也就是说以前产生过的就不能再出现了。
一直不知道如何实现,希望哪位朋友能指点一下。 

解决方案 »

  1.   

    可以取出来就放到一个HashSet里 每次再取出的时候就调用contains函数看看返回值是true还是false
      

  2.   

    用Set可以的,因为Set不允许有重复元素。如://产生10个不重复的1000以内的整数
    import java.util.*;public class DistinctNumbers {
      public static void main(String[] args) {
        Set distinctNumbers = new HashSet();
        Random rand = new Random();
        for(int i = 0; i < 10;)
          if(distinctNumbers.add(new Integer(rand.nextInt(1000)))) i++;
        System.out.println(distinctNumbers);
      }
    }
      

  3.   

    public void fun06() {
    //range:[0,100)
    //count:10
    int count = 0;
    Set set = new HashSet();
    while (count < 10) {
    int i = (int) (Math.random() * 100);
    if (set.add(new Integer(i)))
    count++;
    }
    Conica.pl(set);
    }
      

  4.   

    我和fdiskfix(IBM小子) 的思路一样,问题是如何比较呢?用什么语句可以比较一个数字是不是存在于一个数组中?
      

  5.   

    问题解决了,原来是用contains做比较。多谢大家了!