用Java产生100个1-150间不重复数字
发布时间 - 2026-01-10 23:12:28 点击率:次核心代码
import java.util.Arrays;
/**
* 用Java产生100个1-150的数字
*/
public class RandomTest {
public static void main(String[] args) {
int[] resultArr = produceNum(1, 150, 100);
for (Integer num : resultArr) {
System.out.println(num);
}
System.out.println("+++++++++++++++++===================+++++++++++++");
// 对结果数组排序后再输出
Arrays.sort(resultArr);
for (Integer num : resultArr) {
System.out.println(num);
}
}
/**
* 产生随机数字
* @param minNum 最小数字
* @param maxNum 最大数字
* @param numCount 产生的数字个数
* @return 结果数组
*/
public static int[] produceNum(int minNum, int maxNum, int numCount) {
// 入参校验
// 如果随机数的个数大于产生随机数的范围;或最大数小于最小数
// 直接返回null,说明入参不符合要求
if (numCount > (maxNum - minNum + 1) || maxNum < minNum) {
return null;
}
// 存放结果的数组
int[] resultArr = new int[numCount];
// count 记录已产生的随机数的个数
int count = 0;
while(count < numCount) {
// 产生随机数
int num = (int) (Math.random() * (maxNum - minNum)) + minNum;
// flag 定义本次产生的随机数是否已在数组中
boolean flag = true;
// 遍历数组中已产生的随机数
for (int i=0; i<count; i++) {
// 同本次产生的随机数最比较
if (num == resultArr[i]) {
// 如果已存在相同的值,则跳出for循环,继续外层的while循环,产生下一个随机数
flag = false;
break;
}
}
// 如果本次产生的随机数在数组中不存在,则将该随机数存放在数组中
if (flag) {
resultArr[count] = num;
// 数组中已产生的随机数个数加1
count++;
}
}
return resultArr;
}
}
代码解读
1 int num = (int) (Math.random() * (maxNum - minNum)) + minNum;
Math.random() 产生的是0~1 之间的double类型的随机数
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 for (int i=0; i<count; i++) {
由于每次产生的num都是随机的,所以无法保证重复的问题,所以只有通过去同已经产生的存在数组中的数字去比较,相同,则重新产生,不同,则添加进数组。
# 不重复数字
# JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写
# Java查找不重复无序数组中是否存在两个数字的和为某个值
# java随机抽取指定范围不重复的数字
# Java生成唯一ID的三种方法总结
# 随机数
# 组中
# 的是
# 都是
# 放在
# 已在
# 不符合
# 便会
# 则为
# 中不
# 则将
# 得到了
# 最小值
# void
# String
# main
# produceNum
# Integer
# num
# resultArr
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
佛山网站制作系统,佛山企业变更地址网上办理步骤?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何快速完成中国万网建站详细流程?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Swift中switch语句区间和元组模式匹配
网页设计与网站制作内容,怎样注册网站?
如何挑选优质建站一级代理提升网站排名?
Python3.6正式版新特性预览
SQL查询语句优化的实用方法总结
如何挑选高效建站主机与优质域名?
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel如何使用查询构建器?(Query Builder高级用法)
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Android中AutoCompleteTextView自动提示
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
Laravel Session怎么存储_Laravel Session驱动配置详解
如何在宝塔面板创建新站点?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
javascript基本数据类型及类型检测常用方法小结
网站图片在线制作软件,怎么在图片上做链接?
北京专业网站制作设计师招聘,北京白云观官方网站?
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何批量查询域名的建站时间记录?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
如何为不同团队 ID 动态生成多个“认领值班”按钮
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何在VPS电脑上快速搭建网站?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel怎么使用artisan命令缓存配置和视图
java ZXing生成二维码及条码实例分享
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
如何登录建站主机?访问步骤全解析
Bootstrap整体框架之JavaScript插件架构
Laravel distinct去重查询_Laravel Eloquent去重方法
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
香港服务器如何优化才能显著提升网站加载速度?
Laravel如何自定义错误页面(404, 500)?(代码示例)
使用豆包 AI 辅助进行简单网页 HTML 结构设计
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
Win11怎么设置默认图片查看器_Windows11照片应用关联设置

