Randome类:
可以产生boolean、int、long、float、byte数组以及double类型的随机数。
注:Random类实现随机算法是伪随机的,有随机规则,随机算法的起源为种子数(seed)
三部曲:1.先导包
import java.util.*;
2.创建一个对象
Random random = new Random();
3.使用对象直接调用方法进行操作(获得随机数)
int number = random.nexInt(10);//10以内的随机数,取值范围为[0,10}
Random包含两个构造方法
(1)public Random()
这个构造方法使用一个和当前系统时间想对应的有关数字作为种子数,然后用这个种子数构建Random对象
(2)public Random(long seed)
这个构造方法通过制订一个种子数构建Random对象
案例:
import java.util.*;
public class test{
public static void main(String args[]){
//1.产生随机数,需要导入随机数包,并创建随机数对象[1,4]
Random random = new Random();
//2.建立一个int变量,获取随机数
int num = random.nextInt(1,5)
//2.根据产生的随机数,进行判断选择,为简单的分支选择,用switce
switch(num){
case 1 :
System.out.println("吃黄焖鸡!");
case 2 :
System.out.println("吃螺蛳粉!");
case 3 :
System.out.println("吃木桶饭!");
default:
System.out.println("吃花甲粉!");
}
}
}
(1)相同种子数Random对象问题
import java.util.*;
public class Test {
public static void main(String[] args) {
Random r1 = new Random(10);
Random r2 = new Random(10);
for (int i = 0; i < 3; i++) {
System.out.println(r1.nextInt());
System.out.println(r2.nextInt());
}
}
}
注解:该代码中,对象r1和r2使用的种子数都是10,那么这两个对象生成相同次数随机数是完全相同的
所以,无论项目中有多少随机数,都只生成一个Random对象,避免随机数字相同情况
(2)生成不从零开始的任意整数,即[x,y),x>0
案例:
生成3-18的随机数字
import java.util.*;
public class Test {
public static void main(String[] args) {
int n4 = r.nextInt(18) + 3;
}
}
生成任意非从0开始的整数区间[d1,d2)范围的随机数字(其中d1不等于0),则只需要首先生成[0,d2-d1)区间的随机数字,然后将生成的随机数字区间加上d1即可。
同理,随机区间小数也是这样