在Java中我们可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis(),即1970年1月1号0时0分0秒到当前时间的好描述作为发生器的种子,
Random(long seed)使用指定的seed作为发生器的种子。
随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。
而java.lang.Math中的方法Random()只能生成0.0~1.0之间的一个随机Double类型的数据。
java.util.Random类:
如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。
1.指定种子的Random对象,多次获取的随机数是不变的;
2.获取指定范围内的随机数:
通过nextInt()方法获取的随机数有正数,也有负数,通过Math.abs()取绝对值方法,可以获取到正数,通过除模取余的方法可以获取指定范围内的随机数。
/**
* 获取0到指定大于0的数之间的随机数
* @param maxRange
* @return
*/
private static int getRandomIntData(int maxRange) {
Random random = new Random();
return Math.abs(random.nextInt()) % maxRange;
}
/**
* 获取给定的两个给定数值之间的随机数
* @param minRange
* @param maxRange
* @return
*/
private static int getRandomIntData(int minRange, int maxRange) {
Random random = new Random();
return random.nextInt(maxRange) % (maxRange - minRange + 1) + minRange;
}