日期:2014-05-20 浏览次数:21046 次
class Welcome
{
    public static void main(String[] args)
    {
        int key;
        int[] suit=new int[13];
        boolean[] sw=new boolean[52]; //这个sw数组要怎么用搞不懂
        for(int i=0;i<suit.length;i++)
        {
            while(true)//这一循环是用来判断产生的数有咩有重复的吗,但里面的内容看不懂
            {
                key=(int)(Integer.MAX_VALUE*Math.random()*10)%sw.length;//这一句好复杂,不知道干了什么QAQ
                if(sw[key]==false)
                    break;
            }
            suit[i]=key;
            sw[key]=true;
        }
        for(int i=0;i<suit.length;i++)
        {
            System.out.print(suit[i]+" ");
        }
        System.out.println();
    }
}
Set<Integer> set = new HashSet<Integer>();
        Random random = new Random();
        while (set.size() < 13) {//取得13个
            set.add(random.nextInt(51));//0-51范围数据
        }
        Iterator<Integer> it = set.iterator();
        List<Object> suit=new ArrayList<Object>(); 
        String matter="";
        for(;it.hasNext();){
            // matter+=it.next().toString()+"  ";
             suit.add(it.next());//切记不能两个一起添加,这样会认为迭代2次,会报异常错误:NoSuchElementException
        }
        System.out.println(matter);//或则直接这样输出
        for(int i=0;i<suit.size();i++)
        {
            System.out.println(suit.get(i));
        }
------解决方案--------------------
boolean[] sw=new boolean[52]; //这个sw数组要怎么用搞不懂这个是用来判断是否存在某个数的数组,比如随机取了一个数,2那么sw[2] = true;表示2已经有了
while(true)//这一循环是用来判断产生的数有咩有重复的吗,但里面的内容看不懂
           {
               key=(int)(Integer.MAX_VALUE*Math.random()*10)%sw.length;//这一句好复杂,不知道干了什么QAQ(随机产生0-51的整数)
               if(sw[key]==false)//判断产生的数是否存在
                   break;
           }
           suit[i]=key;//如果不存在就把数据放入到suit当中
           sw[key]=true;//并且不对应位置设置为true以表示该数已经存在了
这里是用来取13个不重复的0-51的数。
------解决方案--------------------