| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
puye
9年前发布

Java随机生成前N个不重复的整数

import java.io.BufferedOutputStream;    import java.io.File;    import java.io.FileNotFoundException;    import java.io.FileOutputStream;    import java.io.IOException;    import java.io.OutputStream;    import java.util.Random;        /**    * 测试随机生成前N个不重复的整数    * @author Administrator    *    */    public class TestRandom {        public static void main(String[] args) {            randomNumber2File("e:/random.txt");        }                /**        * 根据提供的路径生成相应的随机数        * @param path        */        public static void randomNumber2File(String path){            File file = new File(path);            OutputStream os = null;            try {                os = new BufferedOutputStream(new FileOutputStream(file));                byte[] buf = new byte[20];                for(int j = 0; j < 100; j++){                    int[] arr = ranInt(9);                    StringBuffer sb = new StringBuffer();                    for(int i = 0; i < arr.length; i++){                        sb.append(arr[i]);                    }                    sb.append("\r\n");                    buf = sb.toString().getBytes();                    os.write(buf);                }            } catch (FileNotFoundException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }finally{                if(null != os){                    try {                        os.close();                    } catch (IOException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }            }        }                /**        * 利用随机生成数组的索引实现随机,并通过交换实现不重复        * @param n        * @return        */        public static int[] ranInt(int n) {            int[] arr = new int[n];            int i,randomIndex,temp;            for(i = 0; i < n; i++){                arr[i] = i+1;            }            for(i = 1; i < n; i++){                randomIndex = ranIndex(0, i);                //交换当前元素和生成的随机元素                temp = arr[i];                arr[i] = arr[randomIndex];                arr[randomIndex] = temp;            }            return arr;        }                public static int ranIndex(int start, int end){            Random r = new Random();            int result;            result = r.nextInt(end);            return result;          }    }