生成不重复随机数的一种算法

生成不重复随机数的一种算法
import  java.util.Arrays;
import  java.util.Random;

/**
 * 其实思路很简单,就是从seed数组中取出还未选中的种子

 
*/
public   class  RandomTest {

    
public   static   void  main(String[] args) {
        
//  声明一个种子
         int  seed[]  =  {  1 2 3 4 5 6 7 8 9  };
        
//  存放生成后的数字
         int [] destArray  =   new   int [seed.length];
        
//  声明一个Random实例
        Random random  =   new  Random();
        
//  循环种子
         for  ( int  i  =   0 ; i  <  seed.length; i ++ ) {
            
//  随机得到种子中的一个位置
             int  j  =  random.nextInt(seed.length  -  i);
            
//  把该位置上的种子输出
            destArray[i]  =  seed[j];
            
//  把种子中末尾的种子替换得到的种子
            seed[j]  =  seed[seed.length  -   1   -  i];
        }
        System.out.println(Arrays.toString(destArray));
    }

}

你可能感兴趣的:(生成不重复随机数的一种算法)