菜鸟想问下如何生成不同的随机数? 
public void GreateRandom(){
for(i=0;i<r_num;i++)
{
r_arr[i]=0;
r_arr[i]=(int)(Math.random()*(r_max-r_min+1))+r_min;

}
上面这个方法如何改成既可以生成随机数,又可以生产不同的随机数???

解决方案 »

  1.   


    import java.util.*;
    public class Test{
        public static void main(String[] args){
            //生成 [0-n) 个不重复的随机数
            //list 用来保存这些随机数
            ArrayList list = new ArrayList();
            
            
            int n = 10;
            Random rand = new Random();
            boolean[] bool = new boolean[n];
            
            int num =0;
            
            for (int i = 0; i<n; i++){
                
        
                do{
                    //如果产生的数相同继续循环
                    num = rand.nextInt(n);    
                 
                }while(bool[num]);
                
                bool[num] =true;
                
                list.add(num);
            
            
            }
                
        
            System.out.println (list);    
            
            
        }
    }
      

  2.   

    用HashSet生成旧可以了 http://topic.csdn.net/u/20080516/08/71dae9a8-a841-4304-813a-e3124b45945f.html看看着个  绝对有用
      

  3.   

    1.用HashSet放置生成的随机数是一个比较不错的方法
    2.添加一些限制随机数,比如:可以用 时间+生成的随机数 这样相信很难重复了,如果还不放心就再次相加随机数
    这里的时间是毫秒数
      

  4.   

    没有太明白什么意思
     不是直接 int random = (int)(Math.random()) 就可以产生0~9的随机小数了吗?