JAVA:Random详解

Java中的java.util.Random类用于生成伪随机数。它提供了多种方法来生成不同类型的随机数,包括整数、浮点数和布尔值。以下是对Random类及其主要方法的详细介绍

一、生成随机数 

创建一个Random对象,可以使用以下两种方式:

  • 无参构造函数:使用默认的种子(当前时间的毫秒数)

    • Random random = new Random();
  • 带参构造函数:使用指定的种子,便于生成可重复的随机数序列

    • Random random = new Random(42);

无参的构造函数非常好理解,即根据当前时间毫秒值随机生成,那么有参是什么意思呢?有参数即意味着可以生成重复序列的随机数,即如果参数一样,那么根据参数创建的两个对象所生产的随机数:第一组为1,5,7,第二组必然也为1,5,7 

二、主要方法 

 在上述创建完Random对象后,我们即可使用Random中的方法来创建伪随机数

2.1 int nextInt()

  • 返回一个随机的整数,范围是所有可能的int值。
  • int randomValue = random.nextInt();
  • 最小值:Integer.MIN_VALUE,即-2^31(-2147483648)
  • 最大值:Integer.MAX_VALUE,即2^31-1(2147483647)

2.2  int nextInt(int bound)

  • 返回一个0(包括)到bound(不包括)之间的随机整数。用法示例:
  • int randomValue = random.nextInt(10);

2.3 随机浮点数生成 double nextDouble()

  • 返回一个0.0(包括)到1.0(不包括)之间的随机浮点数。
  • double randomValue = random.nextDouble();

2.4 float nextFloat()

  • 返回一个0.0(包括)到1.0(不包括)之间的随机浮点数。
  • float randomValue = random.nextFloat();

2.5 boolean nextBoolean()

  • 返回一个随机的布尔值。
  • boolean randomValue = random.nextBoolean();

2.6 随机长整型生成long nextLong()

  • 返回一个随机的长整型值。
  • long randomValue = random.nextLong();

三、综合示例 

 

import java.util.Random;
import java.util.Arrays;public class RandomExample {public static void main(String[] args) {Random random = new Random();// 生成一个随机整数int randomInt = random.nextInt();System.out.println("Random Integer: " + randomInt);// 生成一个0到9之间的随机整数int randomIntBounded = random.nextInt(10);System.out.println("Random Integer (0-9): " + randomIntBounded);// 生成一个随机浮点数double randomDouble = random.nextDouble();System.out.println("Random Double: " + randomDouble);// 生成一个随机布尔值boolean randomBoolean = random.nextBoolean();System.out.println("Random Boolean: " + randomBoolean);// 生成随机字节数组byte[] randomBytes = new byte[5];random.nextBytes(randomBytes);System.out.println("Random Bytes: " + Arrays.toString(randomBytes));// 生成一个随机长整型值long randomLong = random.nextLong();System.out.println("Random Long: " + randomLong);// 生成一个高斯分布的随机数double randomGaussian = random.nextGaussian();System.out.println("Random Gaussian: " + randomGaussian);}
}

 四、如何随机生成1-10中五个不重复的随机数?

 方法1:

@Test
void threadtest4() throws ExecutionException, InterruptedException {//生成一个数组int[] arr = new int[5];int count=0;Random random = new Random();while (count<5){Boolean isBreak=true;//生成的随机数int i = random.nextInt(5) + 1;//判断是否重复for(int j=0; j<arr.length; j++){if(arr[j]==i){isBreak=false;}}//不重复就进入数组中if(isBreak) {arr[count] = i;count++;}}Arrays.stream(arr).forEach(e-> System.out.println(e));
}

 其结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/19218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建议大家少用点儿网站测速工具

春节休息期间明月有接了几个服务器代运维的业务&#xff0c;期间就发现不少新手站长们还在用 17ce、站长工具等等这些网站测速工具来评判站点访问速度的&#xff0c;感觉很有必要给大家聊聊这个事儿&#xff0c;因为这毕竟也是一个涉及服务器安全的一个重要环节了。 其实&#…

那些不起眼但很好玩的API合辑

那些不起眼但很好玩的API&#xff0c;为我们带来了许多出人意料的乐趣和惊喜。这些API可能看起来并不起眼&#xff0c;但它们却蕴含着无限的创意和趣味性。它们可以是一些小游戏API&#xff0c;让我们可以在闲暇时刻尽情娱乐&#xff1b;也可以是一些奇特的音乐API&#xff0c;…

【后端开发】服务开发场景之分布式(CAP,Raft,Gossip | API网关,分布式ID与锁 | RPC,Dubbo,Zookeeper)

【后端开发】服务开发场景之分布式&#xff08;CAP&#xff0c;Raft&#xff0c;Gossip | API网关&#xff0c;分布式ID与锁 | RPC&#xff0c;Dubbo&#xff0c;Zookeeper&#xff09; 文章目录 1、如何设计一个分布式系统&#xff1f;&#xff08;底层原理&#xff09;理论&a…

怎样清理Mac存储空间 苹果电脑内存不够用怎么办 苹果电脑内存满了怎么清理

在使用 Mac 电脑的过程中&#xff0c;用户经常会遇到磁盘空间不足的困扰&#xff0c;这时候就需要寻找有效的方法来清理苹果电脑内存了。 清理Mac存储空间可以通过多种方法进行&#xff0c;以确保你的Mac能够高效运行并释放宝贵的存储空间。以下是一些有效的清理和优化方法&am…

数据结构和算法|排序算法系列(一)|选择排序

首先需要你对排序算法的评价维度和一个理想排序算法应该是什么样的有一个基本的认知&#xff1a; 《Hello算法之排序算法》 主要内容来自&#xff1a;Hello算法11.2 选择排序 选择排序是明显的基于比较的排序。下文开始阐述选择排序的整个算法流程 算法流程 选择排序应该已…

一致性hash算法原理图和负载均衡原理-urlhash与least_conn案例

一. 一致性hash算法原理图 4台服务器计算hash值图解 减少一台服务3台服务器计算hash值图解 增加一台服务器5台服务器计算hash值图解 二. 负载均衡原理-urlhash与least_conn 2.1.urlhash案例 # urlhash upstream tomcats {hash $requ

MySQL的安全性

给root用户设置密码 点击用户--下面三个账号双击--进行编辑 修改密码--修改完进行保存 关闭数据库后连接不上 重新编辑&#xff0c;设置密码 新建账号 填入信息--保存&#xff08;主机哪里要选择%&#xff09; 连接这个新的账号 点击连接--填写连接的名称&#xff0c;地址&…

字母的大小写转换

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中&#xff0c;字符串对象提供了lower()方法和upper()方法进行字母的大小写转换&#xff0c;即可用于将大写字母转换为小写字母或者将小写字…

2.1.2 基于配置方式使用MyBatis

文章目录 实战目标实战步骤1. 创建Maven项目2. 添加项目依赖3. 创建用户实体类4. 创建用户映射器配置文件5. 创建MyBatis配置文件6. 创建日志属性文件7. 测试用户操作8. 运行测试方法 预期结果实战方法结论 实战目标 本实战的目标是演示如何使用MyBatis框架来操作数据库。通过…

【busybox记录】【shell指令】mkdir

目录 内容来源&#xff1a; 【GUN】【mkdir】指令介绍 【busybox】【mkdir】指令介绍 【linux】【mkdir】指令介绍 使用示例&#xff1a; 创建文件夹 - 默认 创建文件夹 - 创建的同时指定文件权限 创建文件夹 - 指定多级文件路径&#xff0c;如果路径不存在&#xff0c…

【Linux】Linux环境基础开发工具_2

文章目录 四、Linux环境基础开发工具2. vimvim的常见模式 未完待续 四、Linux环境基础开发工具 2. vim vim 是Linux下的一款 多模式编辑器 &#xff0c;可以用来写代码&#xff0c;是 vi 的升级版。 此时无法输入&#xff0c;需要切换模式。 如上图&#xff0c;i 就是切换成…

excel表格里怎样不删除0,又不显示0呢?

在单元格里不显示0&#xff0c;大体上有这么几种方法&#xff1a; 1.设置单元格自定义格式 选中数据区域&#xff0c;鼠标右键&#xff0c;点一下设置单元格格式&#xff0c;选中数字&#xff0c;自定义&#xff0c;在右侧的类型栏&#xff0c;设置格式&#xff1a; [0]&quo…

React基础知识笔记

Reat简介 React&#xff1a;用于构建用户界面的 JavaScript 库。由 Facebook 开发且开源。是一个将视图渲染为html视图的开源库 第一章&#xff1a;React入门 相关js库 react.development.js &#xff1a;React 核心库react-dom.development.js &#xff1a;提供 DOM 操作的…

IDEA 2024.1.2安装与破解

官网下载 官网地址 安装 直接下一步 破解 破解网站 第一步 第二步 第三步 第四步 第五步

DSM驾驶行为分析系统在渣土车管理中的应用

随着科技的不断进步&#xff0c;智能交通系统正逐渐成为现代交通管理的重要工具。其中&#xff0c;DSM驾驶行为分析系统以其独特的功能和优势&#xff0c;在提升驾驶安全性、优化驾驶员管理等方面发挥着重要作用。索迪迈科技将DSM驾驶行为分析系统成功应用于渣土车管理中&#…

专业的力量-在成为专家的道路上前进

专业的力量-在成为专家的道路上前进 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 现在稀缺的已不再是信息资源&#xff0c;而是运用信息的能力。过去…

性能测试(基于Jmeter)

性能指标 RT&#xff08;Response Time&#xff09;响应时间&#xff1a;指的是用户从客户端发起请求开始到服务端返回结束&#xff0c;整个过程所耗费的时间 HPS&#xff08;Hits Per Second&#xff09;&#xff1a; 每秒点击次数&#xff0c;单位&#xff1a;次/秒 TPS&am…

居间人从事光伏行业需要了解的关键因素

随着国家对光伏新能源的大力推广&#xff0c;光伏电站装机量逐渐上升&#xff0c;居间人这个角色开始进入大家的视线&#xff0c;很多人集中式光伏的居间人这个行业蠢蠢欲动&#xff0c;那么究竟怎么判断自己适不适合从事光伏行业的居间人呢&#xff1f; 首先要了解集中式光伏…

Visual Studio 的调试

目录 引言 一、调试的基本功能 设置断点 启动调试 检查变量 逐步执行代码 调用堆栈 使用即时窗口 二、调试技巧 条件断点 日志断点 数据断点 异常调试 三、调试高级功能 远程调试 多线程调试 内存调试 性能调试 诊断工具 四、调试策略与最佳实践 系统化的…

Django入门全攻略:从零搭建你的第一个Web项目

系列文章目录 努力ing Django入门全攻略&#xff1a;从零搭建你的第一个Web项目努力ing… 文章目录 系列文章目录前言一、Django1.1 Django安装1.2 Django项目创建1.3 目录介绍 二、子应用2.1 子应用创建2.2 目录结构2.3 子应用注册2.4 子应用视图逻辑2.4.1 编写视图2.4.2 编写…