package org.xh.rand; import java.util.Arrays; import java.util.Random; public class RandDemo { /** * * make by dxh on 2013-1-23 下午02:16:44 * @param args */ public static void main(String[] args)throws Exception { int[] arr = RandDemo.genNum(5, 30); RandDemo.showArr(arr, true); } /** * 生成不重复随机数 * * @param num * 随机数个数 * @param value * 随机数范围 * @see 注意value不可小于num * @return * @throws TargetMinException */ public static int[] genNum(int num, int value) throws TargetMinException { int[] arr = new int[num];// 保存最终生成结果 int index = 0;// 状态索引 default = 0 arr = new int[num]; if (value < num) { throw new TargetMinException("随机数取值范围不可以小于生成随机数个数"); } boolean result = true; while (result) {// 控制是否继续生成随机数 Random rd = new Random(); int tempRandomNum = rd.nextInt(value) + 1; if (arr[arr.length - 1] == 0) {// 决定是否继续生成随机数进行赋值 if (isHas(tempRandomNum, arr, index)) {// 判断已生成随机数是否与数组中已有数值重复 continue; } arr[index++] = tempRandomNum;// 将生成的不重复发的随机数放入数组中 } else result = false; } return arr; } /** * 判断是否已存在生成的随机数 * * @param mm * @param arr * @param index * @return */ private static boolean isHas(int tempRandomNum, int[] arr, int index) { for (int i = 0; i < index; i++) { if (tempRandomNum == arr[i]) { return true; } } return false; } /** * showArr * * @param arr * @param isSort */ @Deprecated public static void showArr(int[] arr, boolean isSort) { for (int j = 0; j < arr.length; j++) { if (isSort) { Arrays.sort(arr); } System.out.print(arr[j] + ","); } } static class TargetMinException extends Exception { private static final long serialVersionUID = 1L; public String message = ""; public TargetMinException(String message) { this.message = message; } @Override public String getMessage() { return this.message; } } }
相关推荐
java生成十个不重复的随机数,要求不重复
巧用Java实现得到任意位永不重复的随机数,很经典的代码!
使用了ArrayList和简单的循环来达到目的。用输入数字作为触发器。
java 不重复的随机数序列 java 不重复的随机数序列
主要介绍了Java实现生成n个不重复的随机数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
生产不重复19位随机数,测试1000000数据没重复
在Struts+Spring+Mybatis基础上写的比较灵活的产生随机数,可以用到用户编号随机产生,其中验证了随机数不会重复产生。
直接运行main即可,参数为数字范围 比如10 运行后会输出9,3,0,7,2,8,4,1,5,6,
在开发过程中,会遇到生成XX编号之类的数据,而且这编号不能重复,所以根据当前时间,生成8位不重复的数.
Java中不重复随机数的生成与分析
多种生成不重复随机数的java 源代码,在线考试系统组卷系统中若需要随机抽题技术,这些代码可能会帮上忙!
该代码采用面向对象语言实现不重复的随机数,用四种方法。谢谢参考
主要介绍了JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
你中过奖么?利用java实现一个35选7的彩票中奖号码产生程序。随机产生7个1至35之间(包括1和35)的不重复整数,并输出...随机数生成方法见JDK API的java.lang.Math类的random函数。(练习循环与break、continue、数组)
主要介绍了Java编程实现生成给定范围内不重复随机数的方法,结合实例形式总结分析了java基于数学运算与判断实现不重复随机数的生成功能,需要的朋友可以参考下
java 生成8位UUID,解决UUID2太长的问题,欢迎下载。后续代码,陆续放出
以生成[10,20]随机数为例,首先生成0-20的随机数,然后对(20-10+1)取模得到[0-10]之间的随机数,然后加上min=10,最后生成的是10-20的随机数
主要介绍了Java编程实现从给定范围内随机N个不重复数生成随机数的方法,结合实例形式较为详细的分析了java根据指定范围生成不重复随机数的相关操作技巧,需要的朋友可以参考下