在java中,我们可以通过两种方式来获取随机数(generatingarandomnumber)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。下面是两种方法的使用过程:
1.java.lang.Math.random()
在使用这一静态方法的时候,我们不需要import任何包,因为java.lang.*包是默认载入的,下面举例说明:
package com.luiszhang.test;
public class RandomTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//random()会自动产生一个0.0-1.0的双精度随机数
double doubleRadomNum = Math.random();
System.out.println(doubleRadomNum);
//产生0-1000的双精度随机数
doubleRadomNum = Math.random() * 1000;
System.out.println(doubleRadomNum);
//产生0-1000的整数随机数
int intRandomNum = (int) (Math.random() * 1000);
System.out.println(intRandomNum);
}
}
2.创建java.util.Random对象
package com.luiszhang.test;
import java.util.Random;
public class RandomTest {
/**
* @param args
*/
public static void main(String[] args) {
// 创建random对象
Random random = new Random();
//获取一个整型随机数
int intNumber = random.nextInt();
//获取一个浮点随机数(0-1)
float floatNumber = random.nextFloat();
//获取双精度随机数(0-1)
double doubleNumber = random.nextDouble();
//获取boolean随机数
boolean booleanNumber = random.nextBoolean();
System.out.println("intNumber:" + intNumber);
System.out.println("floatNumber:" + floatNumber);
System.out.println("doubleNumber:" + doubleNumber);
System.out.println("booleanNumber:" + booleanNumber);
}
}
说明:
(1)我们可以通过System.currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦。(在循环中易产生重复值,不好用)
(2)Randomrandom=newRandom();不指定基数,此种方式将会返回随机的数字,每次运行结果不一样。当然我们也可以指定基数,例如:Randomrandom=newRandom(100);同一基数所产生的随机数序列是一样的。
下面我们将写测试程序对这些进行验证:
package com.luiszhang.test;
import java.util.Random;
public class RandomTest {
/**
* @param args
*/
public static void main(String[] args) {
// 以100为基数创建两个随机数
Random randomNumber1 = new Random(100);
Random randomNumber2 = new Random(100);
// 验证同一基数生成的Random对象产生的随机数是否相等
for(int i = 0; i < 5; i++) {
System.out.print(randomNumber1.nextInt() + " ");
System.out.print(randomNumber2.nextInt() + "\n");
System.out.println("Is equal is " + (randomNumber1.nextInt() == randomNumber2.nextInt()));
System.out.println("------------------------------");
System.out.print(randomNumber1.nextDouble() + " ");
System.out.print(randomNumber2.nextDouble() + "\n");
System.out.println("Is equal is " + (randomNumber1.nextDouble() == randomNumber2.nextDouble()));
System.out.println("------------------------------");
System.out.print(randomNumber1.nextFloat() + " ");
System.out.print(randomNumber2.nextFloat() + "\n");
System.out.println("Is equal is " + (randomNumber1.nextFloat() == randomNumber2.nextFloat()));
System.out.println("------------------------------");
System.out.print(randomNumber1.nextBoolean() + " ");
System.out.print(randomNumber2.nextBoolean() + "\n");
System.out.println("Is equal is " + (randomNumber1.nextBoolean() == randomNumber2.nextBoolean()));
System.out.println("------------------------------");
}
// 以当前时间自己生成随机数,随机数范围为1-32
for(int i = 0; i < 5; i++) {
System.out.print((System.currentTimeMillis()%32 + 1) + "\n");
System.out.println("------------------------------");
}
}
}
分享到:
相关推荐
在Java中产生随机数的两个方法,在Java中产生随机数的两个方法
java产生随机数的几种方式 java产生随机数的几种方式 java产生随机数的几种方式 java产生随机数的几种方式
java中产生随机数的两个方法,希望这个资源对大家有帮助。
介绍java 产生随机数式介绍java 产生随机数式介绍java 产生随机数式介绍java 产生随机数式
JAVA中的随机数产生和排序,老师给的一个题目,在调试中得到的,看了还是有些启发的!希望可以知道更多解决的方法,请大家指教!
Java产生随机数代码 Java产生随机数代码
利用JAVA语言产生某一特定范围的随机数,并且能够将随机数保存在具体的文件中。
Keil C51 中产生随机数的方法和样例
Java获取随机数的3种方法和总结,正对Java中的随机数做出解释
java 求最大的随机数 java 求最大的随机数
Java生成32位随机数,短位随机数工具类
在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。本文介绍了两种方法的使用过程。
主要是一个Java获取计算机基本信息并且在Web页面上以ExtJs4的图表展示,这里删除了ExtJs4的资源和一个算法产生验证码,因为这个算法最终使用到了产品中,所以就把这个测试的类删除了,各位不好意思了
浅谈java中的几种随机数,浅谈java中的几种随机数,浅谈java中的几种随机数,浅谈java中的几种随机数
Java简易随机数生成 下载完请输入测试代码 public static void main(String[] args) { System.out.println(random(50,100));//example System.out.println(random(50.0,100.0)); }
产生随机数并运算产生随机数并运算产生随机数并运算产生随机数并运算产生随机数并运算产生随机数并运算
java 随机数 java 随机数 java 随机数
java生成16位随机数
Java产生随机数的两种方式.doc