1. 程式人生 > >Java中從m個數中隨機選取n個不同的數(m>=n),並進行排序

Java中從m個數中隨機選取n個不同的數(m>=n),並進行排序

我這裡直接給出我寫的函式,只需傳入引數便可直接使用:

  1. //從x-y中的數中隨機找出num個不同的數,返回給integer的動態陣列中
  2. ArrayList<Integer> makeRandom(int x, int y, int num)  
  3.     {   
  4.         //建立一個integer的動態陣列
  5.         ArrayList<Integer> a = new ArrayList<Integer>();  
  6.         int index = 0;  
  7.         //往數組裡面逐一加取到不重複的元素
  8.         while(index < num)  
  9.         {  
  10.         //產生x-y的隨機數
  11.             Random r = new Random();  
  12.             int temp = r.nextInt(y-x)+x ;  
  13.         //設定是否重複的標記變數為false
  14.             boolean flag = false;  
  15.             for(int i =0; i<index;i++)  
  16.             {  
  17.                 if(temp == a.get(i))  
  18.                 {  
  19.                     flag = true
    ;  
  20.                     break;  
  21.                 }  
  22.             }  
  23.             if(flag==false)  
  24.             {  
  25.                 a.add(temp);  
  26.                 index++;  
  27.             }  
  28.         }  
  29.         return a;  
  30.     }  
使用舉例,並實現排序功能:
  1. ArrayList<Integer> a = makeRandom(10,205);//在10-20中隨機找5個不同的數
  2.   //將ArrayList轉換為Object的普通陣列並進行排序
  3. Object[] b = a.toArray();  
  4. Arrays.sort(b);  
  5. for(int i = 0; i < b.length;i++)  
  6.  {  
  7.     System.out.println(b[i]);  
  8.  }