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()),则产生的随机数也相同。
分享到:
相关推荐
Java提供日期(Data)类、日历(Calendar)类,随机数(Random)类,堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构
标题“java.util.pdf”暗示这是一个关于Java编程语言中util包的文档。由于描述和标签均重复标题,我们可以推断文档重点在于解释和示例展示java.util包中的类与接口。java.util是Java的标准库中的一个包,主要用于...
Java.util包是Java标准库中的核心包之一,包含了许多用于处理集合、数组、日期时间、随机数等的类。在本文件中,我们主要关注Java.util.ArrayList类,这是一个常用的动态数组实现,它提供了灵活的大小调整和高效的...
Java.util包是Java标准库中的核心包之一,它包含了大量用于日常编程的工具类和接口。这个包在Java 2版本中得到了显著增强,引入了许多重要的数据结构和算法,为Java程序员提供了更丰富的功能。 首先,Java.util包中...
Java8中的java.util.Random类 文章代码,不多解释啦,不需要你安装其它的jar包。
在性能方面,`Math.random()` 通常被认为比 `Random.nextInt()` 快,因为它不需要创建对象。然而,对于大多数应用来说,这种差异可能微不足道,除非你在生成大量随机数时特别关注性能。 总的来说,如果你需要简单...
### Java.util包源码知识点概览 #### 一、Overview `java.util`包是Java标准库中的一个重要组成部分,提供了大量的实用工具类和接口来处理集合数据类型、日期时间操作、随机数生成等功能。这份PDF文档包含了`java....
java.util.Random与Math.random的区别 java.util.Random和Math.random都是Java语言中用于生成随机数的方法,但是它们之间存在着一些重要的区别。 Math.random()方法 Math.random()方法是Java.lang.Math类中的一个...
在Java编程语言中,`java.util.Random` 类是生成伪随机数的核心工具。这个类提供了多种生成不同类型随机数的方法,包括整数(int、long)、浮点数(float、double)以及高斯分布(Gaussian)随机数。与 `java.lang....
### Java.util包详解 #### 一、概述 `java.util`包是Java Standard Edition (Java SE)的一个核心组件,提供了大量的实用工具类和接口,帮助开发者处理常见的编程任务,如数据存储、日期时间操作、随机数生成等。该...
### Java的.awt包和.java.util包的区别 #### Java.util包详解 Java.util包是一个非常重要的标准库之一,其中包含了大量有用的类和接口,为开发者提供了丰富的功能。此包中的类和接口可以分为以下几大类别: 1. **...
Java.util包是Java编程语言中的核心包之一,它包含了大量用于日常编程的类和接口,是Java程序员必备的知识点。本教程重点讲解了Java.util包中的主要组件和使用方法,旨在帮助初学者深入理解并熟练运用这个包。 1. *...
运用下列类进行JAVA编程: Date Calendar Random 使用 Collection 接口及其实现类 ArrayList LinkedList 使用 HashMap 使用Vector 等方法的使用
介绍Java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供...
### Java_util 工具包详解 #### 一、引言 `java.util`包作为Java标准库中的一个重要组成部分,提供了大量的实用工具类和接口,旨在简化开发者在处理数据结构、日期时间、事件处理等方面的工作。这个包包含了如日期...
Java提供两种主要的方式来生成随机数:`java.lang.Math.random()` 和 `java.util.Random` 类。这两种方法各有优劣,适用于不同的场景。 #### Math.random() `Math.random()` 是一个简单易用的方法,用于生成一个...
6. **随机数生成**:`java.util.Random`类用于生成随机数,广泛应用于模拟和测试场景。 7. **实用工具类**:`java.util.Arrays`和`java.util.Collections`提供静态方法,用于操作数组和集合,如排序、复制和填充。 ...
18. **`java.util.Random`**: 生成随机数。 19. **`java.util.Comparator`**: 定义自定义排序规则。 20. **`java.util.stream.*`** (Java 8+): 流式处理API,支持函数式编程。 21. **`java.util.concurrent....
5. **`java.util.Random`**:生成随机数,适用于各种随机算法或模拟场景。 6. **`java.io.*`** 包:包含大量工具类,用于输入/输出操作,如`FileReader`、`BufferedReader`、`PrintWriter`等。 7. **`java.util....