前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java随机生成前N个不重复的整数

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

原创
作者头像
用户7999227
修改2021-09-24 10:40:20
1.4K0
修改2021-09-24 10:40:20
举报
文章被收录于专栏:Java小王子Java小王子
代码语言:javascript
复制
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;

}

}  </pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com