介绍
本篇文章给大家分享的是有关Java如何实现随机生成100个在1 - 150之间的数字并不出现重复,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
核心代码
进口java.util.Arrays;/* * *用Java产生100个1 - 150的数字 */公开课RandomTest { 公共静态void main (String [] args) { int [] resultArr=produceNum (150, 100); (整数num: resultArr) { System.out.println (num); } System.out.println (“+ + + + + + + + + + + + + + + + +===================+ + + + + + + + + + + + +,);//对结果数组排序后再输出 Arrays.sort (resultArr); (整数num: resultArr) { System.out.println (num); } }/* * *产生随机数字 * @param minNum最小数字 * @param maxNum最大数字 * @param numCount产生的数字个数 * @return结果数组 */公共静态int [] produceNum (int, int maxNum int minNum numCount) {//入参校验//如果随机数的个数大于产生随机数的范围,或最大数小于最小的数//直接返回零,说明入参不符合要求 如果(numCount比;(maxNum minNum + 1) | | maxNum & lt;minNum) { 返回null; }//存放结果的数组 int [] resultArr=new int [numCount];//计数记录已产生的随机数的个数 int数=0; 而(计数& lt;numCount) {//产生随机数 int num=(int) (math . random () * (maxNum - minNum)) + minNum;//标志定义本次产生的随机数是否已在数组中 布尔标志=true;//遍历数组中已产生的随机数 for (int i=0;i<计算;我+ +){//同本次产生的随机数最比较 如果(num==resultArr[我]){//如果已存在相同的值,则跳的出循环,继续外层时的循环,产生下一个随机数 国旗=false; 打破; } }//如果本次产生的随机数在数组中不存在,则将该随机数存放在数组中 如果(国旗){ resultArr[数]=num;//数组中已产生的随机数个数加1 数+ +; } } 返回resultArr; } }
<>强代码解读强>
1 int num=(int) (math . random () * (maxNum - minNum)) + minNum;
math . random()产生的是0 ~ 1之间的两类型的随机数
math . random() * 10便会得到0 ~ 10之间的随机数,转int后便是0 ~ 9;如果给math . random() * 10 + 1,便是1 ~ 11之间的随机数,转int便是1 ~ 10。
这里的1相当于程序中的最小值,11则为最大值。
这样便得到了产生随机数的(int) (math . random () * (maxNum - minNum)) + minNum
2 (int i=0;i<计算;我+ +){
由于每次产生的num都是随机的,所以无法保证重复的问题,所以只有通过去同已经产生的存在数组中的数字去比较,相同,则重新产生,不同,则添加进数组。
以上就是Java如何实现随机生成100个在1 - 150之间的数字并不出现重复,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。