Java如何实现随机生成100个在1 - 150之间的数字并不出现重复

  介绍

本篇文章给大家分享的是有关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之间的数字并不出现重复,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

Java如何实现随机生成100个在1 - 150之间的数字并不出现重复