import java.util.*;
class MySet
{
public static void main(String [] args)
{
Set<Integer> s=new HashSet<Integer>();
while(s.size()<100)
{
s.add(new Integer((int)Math.random()*100));
}
for(int i=0;i<100;i++)
    System.out.println(s.toArray()[i]);
}
}
编译没有错误!但是个死循环!请高手帮忙搞定一下!(我要的是一百个不重复的随机数)

解决方案 »

  1.   

    new Integer((int)Math.random()*100)//可能出现重复的值
      

  2.   

    你有一个小错误 
    s.add(new Integer((int)Math.random()*100)); 改成
    s.add(new Integer((int)(Math.random()*100))); 就可以了
    不然的话你的随机数永远是0(因为Math.random得到的是大于0小于1的数,再转换成int还是0),当然死循环了.
      

  3.   


    s.add(new Integer((int)Math.random()*100)); 
    改为
    s.add(new Integer((int)(Math.random()*100))); 就好了.
    (int)Math.random()*100)的结果永远是0
    先执行(int)Math.random()返回0.再乘几都没用
      

  4.   

    Random ran = new Random();
    for (int i = 0; i < 100; i++) {
        ran.nextInt(100);
    ......有API不用,为什么要自己乘来乘去的?