forget and forget

          能吃能睡是福;能忘是大福......

          posts - 39, comments - 26, trackbacks - 0, articles - 10
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          一個生成無重復數字的代碼

          Posted on 2006-01-12 10:29 橘子 閱讀(491) 評論(0)  編輯  收藏 所屬分類: 程序開發
           1import java.util.Random;
           2
           3public class Util{
           4 /**隨機對象*/
           5 private static Random rd = null;
           6 
           7 /**
           8  * 返回一個無重復的隨機數組
           9  * @param src 來源數組,所有的數據都來自該數組
          10  * @return 處理好的數組
          11  */

          12 public static int[] random(int[] src){
          13  //如果源數組為空,則返回
          14  if(src == null){
          15   return null
          16  }

          17  
          18  rd = new Random();
          19
          20  //創建返回數組
          21  int[] tmp = new int[src.length];
          22  //可供選擇的數據個數
          23  int num = src.length;
          24  
          25  //抽取到的數組的下標
          26  int index;
          27  //隨機抽取,如果某個數字被抽取,則置該數字為0,并放到數組的末尾
          28  for(int i = 0;i < src.length;i++){
          29   //隨機生成下標
          30   index = Math.abs(rd.nextInt()) % num;
          31   //取該值
          32   tmp[i] = src[index];
          33   //交換數據
          34   src[index] = src[num - 1];
          35   //可選擇數量減少1
          36   num--;
          37  }

          38  //返回
          39  return tmp;
          40 }

          41 
          42 public static void main(String[] args){
          43  int[] test = {1,2,3,4,5,6,7,8,9};
          44  int a[] = random(test);
          45  
          46  for(int i = 0;i < a.length;i++){
          47   System.out.println(a[i]); 
          48  }
           
          49 }

          50  
          51}
          主站蜘蛛池模板: 津市市| 洪雅县| 雅安市| 拜泉县| 鄂尔多斯市| 耒阳市| 大荔县| 集安市| 南通市| 丰城市| 民权县| 屏南县| 颍上县| 开化县| 洪洞县| 南汇区| 双鸭山市| 江阴市| 麻阳| 元阳县| 保康县| 定远县| 洛浦县| 鱼台县| 呼玛县| 华蓥市| 土默特左旗| 林州市| 获嘉县| 若尔盖县| 木兰县| 巴东县| 青铜峡市| 凤阳县| 广元市| 天水市| 林西县| 长岛县| 怀化市| 伊川县| 高密市|