Java获取随机数的三种方式
参考:原博
1、new Random()
指定种子,每次运行程序产生的随机数都是一样的
不指定种子,每次运行产生的随机数都是随机的
// Random r = new Random(20);
Random r = new Random();
for (int i = 0; i < 5; i++) {
int ran = r.nextInt(100); //随机数<100
System.out.println(ran);
}
2、Math.random()
Math.random()*max
表示生成[0,max)
之间的随机数,左闭右开
Math.random()*(max - min) + min
表示生成[min,max]
之间的数,闭区间
//Math.random()返回值是double,精度高,要获取int随机数需要强转
int ran = (int) (Math.random()*(100 - 1) + 1);
System.out.println(ran);
3、currentTimeMillis()
获取从1970-1-1 00:00:00到现在的一个long型毫秒数
,取模后可得到所需范围的随机数
实测会出现负数,可以用Math.abs()
转为正数
long randomNum = System.currentTimeMillis();
//会出现负数,可以用Math.abs()转为正数
int ran = (int)(randomNum%(100 - 1) + 1); //闭区间
System.out.println(ran);