前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中的随机数「建议收藏」

Java中的随机数「建议收藏」

作者头像
全栈程序员站长
发布2022-09-08 15:30:25
1.2K0
发布2022-09-08 15:30:25
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Java产生可以随机数的有两个类,一个是Random类,另一个是Math类中的random()方法。

一、Random类

在java.util包中有一个Random类,该对象的几个方法可以生成不同数据类型的随机数。如nextInt(),nextFloat(),nextLong(),nextBoolean()分别生成的是int整形,float浮点型,double浮点型,boolean布尔类型的随机数,也必须要用制定的数据类型的变量接收。

例如:输出五个随机的布尔类型

代码语言:javascript
复制
import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			boolean temp = rd.nextBoolean();
			System.out.println(temp);
		}
		
		
	}
}
Java中的随机数「建议收藏」
Java中的随机数「建议收藏」

此外,可以生成int整形的nextInt()方法,有一个重载方法nextInt(int bound),多了一个传入的bound整形,该方法可以使其生成[0,bound)区间的整形随机数。bound不能<=0会报错。

例如:随机输出5个0-99的随机数。

代码语言:javascript
复制
import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			int temp = rd.nextInt(100);
			System.out.println(temp);
		}
		
		
	}
}

输出结果也是随机的0-99:

Java中的随机数「建议收藏」
Java中的随机数「建议收藏」

我们发现,nextLong()同样是生成整形的随机数,但是没有指定限制随机区间的重载函数,那么就可以使用人为的方式来限制随机区间。

1. nextLong()%n使其随机数区间在(-n,n)

例如 : 输出(-10,10)的5个随机数。

代码语言:javascript
复制
import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			Long temp = rd.nextLong()%10;
			System.out.println(temp);
		}
		
		
	}
}
Java中的随机数「建议收藏」
Java中的随机数「建议收藏」

2.使用 Math.abs() 限制随机数为非负数。

例如:输出5个 0-9的随机数

代码语言:javascript
复制
public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			Long temp = Math.abs( rd.nextLong())%10;
			System.out.println(temp);
		}
		
		
	}
}
Java中的随机数「建议收藏」
Java中的随机数「建议收藏」

其中的nextFloat(),nextDouble()方法分别生成0-1的8位有限小数,16位有限小数的随机数。

例如:输出5个16位有限小数的随机数。

代码语言:javascript
复制
public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			double temp = Math.abs( rd.nextDouble())%10;
			System.out.println(temp);
		}
		
		
	}
}
Java中的随机数「建议收藏」
Java中的随机数「建议收藏」

二、Math.random()方法

生成的随机数和Random类的nextDouble()类似,也是16位有限小数。

例如:输出5个0-1区间的16位有限小数的随机数。

代码语言:javascript
复制
import java.util.Random;

public class Test01 {
	
	public static void main(String[] args) {
		Random rd = new Random();
		
		for(int i=0;i<5;i++) {
			double temp = Math.random();
			System.out.println(temp);
		}
		
		
	}
}
Java中的随机数「建议收藏」
Java中的随机数「建议收藏」

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156201.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档