Random()构造函数 有两种:
其一:Random()
创建一个新的随机数生成器。它是以当前时间的毫秒数,为种子。可以通过System.currentTimeMillis()来获得当前时间的毫秒数
其二:Random(long seed)
使用单个 long 种子创建一个新随机数生成器.
如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
测试一:使用不带参数的构造方法.
测试1:nextInt(); 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
public static void main(String[] args) {
// TODO Auto-generated method stub
java.util.Random r=new java.util.Random();
for(int i=0;i<10;i++){
System.out.println(r.nextInt());
}
}
控制台打印:
-864316554
-2077454005
293730977
-1743870413
-1424715784
486969960
-988141949
-1930205453
1550615431
-1436965049
测试2:nextInt(int n); 返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
public static void main(String[] args) {
// TODO Auto-generated method stub
java.util.Random r=new java.util.Random();
for(int i=0;i<6;i++){
System.out.println(r.nextInt(7));
}
}
4
4
2
2
0
2
问题:包含重复的数值
所以,在一定的取值范围内,如何将重复的数值去掉?
方法一:如果网页的访问频率(时间较短)较高,而又用以当前时间的毫秒数为种子,则可以使用
try {Thread.sleep(2);} catch(Exception e) {}
方法二:使用Set集合,过滤掉重复的记录
List searchList = getSearchList();
Set set = new HashSet();
Random random = new Random();
while (set.size() < 6 {
set.add(searchList(random.nextInt(listSize)));
}
思路:从一个集合中随机产生6个不重复的记录并显示出来。
测试二:使用带参数的构造方法.
Random random = new Random(7);
for (int i=0;i<6;i++) {
System.out.println(i+":"+random.nextInt());
}
0:-1156638823
1:-1552468968
2:-1077308326
3:41356089
4:1495978761
5:2107132509
总结:所以,如果用构造一个指定种子的Random,则,
如果所指定的种子相同(本例为7),且调用的方法相同(本例为random.nextInt()),则产生的随机数也相同。
分享到:
相关推荐
Java8中的java.util.Random类 文章代码,不多解释啦,不需要你安装其它的jar包。
Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法,下面这篇文章主要给大家介绍了关于java.util.Random实现原理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
下面小编就为大家带来一篇浅谈java中Math.random()与java.util.random()的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java提供日期(Data)类、日历(Calendar)类,随机数(Random)类,堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构
运用下列类进行JAVA编程: Date Calendar Random 使用 Collection 接口及其实现类 ArrayList LinkedList 使用 HashMap 使用Vector 等方法的使用
绍java.util.Random与Math.random区别
介绍Java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供...
import java.util.Random; import java.util.Scanner; /** * 使用递归分割绘制迷宫 * * @author WangSong * * @Time 2020-6-22 */ abstract class Arithmetic { /** 路表示为1 */ public final int ROUND ...
1.Math.floor(Math.random() * 11) 幸运的是,如果我们使用java.util.Random或java.util.concurrent.ThreadLocalRandom就不用担心上述问题了。 Java实战项目里面介绍了一些不正确使用java.util.Random API的危害。...
使用JAVAScript实现模仿斗地主发牌程序,使用公司... Authorized use random function in Java. Java. Util. Random (), through the cycle than to remove duplicate Random value. Redundancy is too big, I'm sorry.
java.util.Random d1 = new java.util.Random(); java.util.UUID d2; int ji_i; long ji起始时间_i; long ji截至时间_i; java.util.Date date = new java.util.Date(); //生成1万个序列化後的文本 for (ji_...
import java.util.Random; import java.util.Scanner; public class AnimeShowGame { // 声明全局变量 private static ArrayList<String> characters = new ArrayList(); private static ArrayList<String> ...
例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector)、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据...
java.util.Random d1 = new java.util.Random(); java.util.UUID d2; int ji_i; long ji起始时间_i; long ji截至时间_i; java.util.Date date = new java.util.Date(); //生成1万个序列化後的文本 for (ji_...
Jafaran(Java快速随机)提供了Java.util.Random的快速(对于更多随机性)实现,以及其他nextXXX()方法以及用于检索和恢复状态的方法。 如果实现名称是线程安全和非阻塞的,则实现名称包含“ Conc”(用于并发),...
* java.util.Random:随机数生成器类,提供了随机数的生成方法。 * java.util.Timer:定时器类,提供了定时任务的执行方法。 二、String 类 String 类是 Java 语言中最基本的类之一,提供了字符串的处理方法。常用...
在Java中,生成随机数可以使用java.util.Random类或java.util.concurrent.ThreadLocalRandom类。这两个类提供了生成伪随机数的方法,下面是它们的详细介绍: 使用java.util.Random类生成随机数: 创建Random类的...
import java.util.Random;; public class DebugTest{ private List list=new ArrayList(); public void doMain() { Random r=new Random(); for(int i=0;i;i++) { int nextInt=r.nextInt(); list.add(new...
java.util 包是Java语言中的实用工具类库,提供了一些低级的实用工具,如数据结构类、日期类、随机数类、属性类、观测类和异常类等。 java.util 包中的类有: * Date:日期类,提供了日期处理的方法。 * Calendar...
Java 中随机函数可以分为两种:一种是使用 Math.random() 方法生成随机数,另一种是使用 java.util.Random 类生成随机数。 1. 使用 Math.random() 方法生成随机数 Math.random() 方法可以生成一个双精度浮点数,该...