`
alfredgao
  • 浏览: 134632 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

java.util.Random 分析

    博客分类:
  • J2se
阅读更多
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类文章代码

    Java8中的java.util.Random类 文章代码,不多解释啦,不需要你安装其它的jar包。

    关于java.util.Random的实现原理详解

    Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法,下面这篇文章主要给大家介绍了关于java.util.Random实现原理的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。

    浅谈java中Math.random()与java.util.random()的区别

    下面小编就为大家带来一篇浅谈java中Math.random()与java.util.random()的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java.util包

    Java提供日期(Data)类、日历(Calendar)类,随机数(Random)类,堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构

    java.util 包 是Java中很大的一个集合

    运用下列类进行JAVA编程: Date Calendar Random 使用 Collection 接口及其实现类 ArrayList LinkedList 使用 HashMap 使用Vector 等方法的使用

    java.util.Random与Math.random区别

    绍java.util.Random与Math.random区别

    实用工具类库java.util

    介绍Java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供...

    java随机数

    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.

    JSON序列化与反序列化JAVA工具

    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_...

    Java设计二次元动漫人物演出活动小游戏代码.docx

    import java.util.Random; import java.util.Scanner; public class AnimeShowGame { // 声明全局变量 private static ArrayList&lt;String&gt; characters = new ArrayList(); private static ArrayList&lt;String&gt; ...

    Java.util包简介并教您如何开发应用之二

    例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector)、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据...

    Java课程设计-老鼠走迷宫

    import java.util.Random; import java.util.Scanner; /** * 使用递归分割绘制迷宫 * * @author WangSong * * @Time 2020-6-22 */ abstract class Arithmetic { /** 路表示为1 */ public final int ROUND ...

    JSON序列化及反序列化工具

    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.util.Random的快速,随机的实现。-开源

    Jafaran(Java快速随机)提供了Java.util.Random的快速(对于更多随机性)实现,以及其他nextXXX()方法以及用于检索和恢复状态的方法。 如果实现名称是线程安全和非阻塞的,则实现名称包含“ Conc”(用于并发),...

    java 随机数.docx

    在Java中,生成随机数可以使用java.util.Random类或java.util.concurrent.ThreadLocalRandom类。这两个类提供了生成伪随机数的方法,下面是它们的详细介绍: 使用java.util.Random类生成随机数: 创建Random类的...

    debugtest.java

    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...

    飞机大战源代码

    import java.util.Random; import javax.swing.ImageIcon; import javax.swing.JPanel; public class MyJPanel extends JPanel implements Runnable,MouseMotionListener{ Yingxiongji yingxiong = new ...

    java控制台输入随机数据,比如各种水果,食物,然后随机出现一种输入的商品

    java控制台程序 1)控制台输入指令1,添加数据到数组 2)控制台输入指令2,随机生成一个输入数据 3)控制台输入指令3,退出程序 使用到的类 java.util.ArrayList ...java.util.Random java.util.Scanner

    【JavaScript源代码】Java 生成随机字符的示例代码.docx

     示例代码: import java.util.Random; import java.util.UUID; public class Dept { /** * 生成随机字符串 uuid */ public static String getUUID() { return UUID.randomUUID().toString(); } /** * ...

Global site tag (gtag.js) - Google Analytics