网站首页 > 精选教程 正文
在我们的Java课程中通过游戏案例,我们通过随机数来对每次的攻击伤害值进行了一个赋值,那么Java中还有哪些方法可以产生随机数呢?
Java中产生随机数的几种方式,随机数的概念从广义上讲,有三种:
1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
【PS:这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿它作为一个随机数,拿它对一些数取模,就可以得到我们想要的一些范围内随机数】
2、通过Math.random()返回一个0到1之间的double值。
【PS:这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的倍数来得到想要的效果,比如说乘以10,他就是个10以内的随机数】
3、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。
【PS:我们可以通过新建一个Random的对象来产生随机数,他可以产生随机整数、float、double、long型随机数】
因为方法3是我们日常项目中比较常用的一种,也是使用范围比较广的一种,所以我们这里重点讲讲第三种方法Random类来产生一个随机数。
java.util.Random类有两种构建方式:带种子和不带种子 。
不带种子
这种方式将会返回随机的数字,每次运行结果不一样:
输出结果是:
带种子
无论程序运行多少次,返回结果都是一样的【老九君亲测有效】:
输出结果,两次结果均相同,重复运行也均是同样的结果:
两种方式的差别在于?
我们先来看看API怎么说:
Random()
创建一个新的随机数生成器。
Random(long seed)
使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next 方法使用它来保存随机数生成器的状态。
通俗说,两者的区别是:
带种子的,每次运行生成的结果都是一样的。如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
不带种子的,每次运行生成的都是随机的,没有规律可言。
创建不带种子的Random对象:
Random random = new Random();
创建不带种子的Random对象有两种方法:
1) Random random = new Random(555L);
2) Random random = new Random();
random.setSeed(555L);
Random对象的nextInt(),nextInt(int n)方法的说明:
1.int nextInt():
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。
2.int nextInt(int n):
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。 如下所示ran.nextInt(10):
打印结果如下,生成了0~9之间的随机整数:
需要更多学习笔记干货的小伙伴、欢迎关注公众号【老九学堂】(づ ̄3 ̄)づ╭?~
猜你喜欢
- 2024-11-16 Java编程从零开始07 数组的基本算法(查找和排序)
- 2024-11-16 Java练习:一个猜数游戏(java猜数游戏程序)
- 2024-11-16 Java中生成唯一ID的方法(java 生成id)
- 2024-11-16 617、java类,对象,集合的介绍(java中对象是什么)
- 2024-11-16 聊聊最近面试中遇到的算法题:公平的随机
- 2024-11-16 Java实现7种常见密码算法(java密码加密哪种方式最安全)
- 2024-11-16 JAVA入门:零基础实现幸运抽奖功能
- 2024-11-16 Hive 自定UDF函数,生成 32 位随机数
- 2024-11-16 四十三、Java常用类-Random类:深入理解与实践指南
- 2024-11-16 在程序中用的随机数,足够随机吗?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)