Random()方法的理解

Random()方法的理解

啥也不说先来个实例1

但很多人看到输出结果时会很纳闷、、、、。不要急听我慢慢道来。首先来看输出结果:

 length of a = 13
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

package com.day1.first;

import java.util.Arrays;
import java.util.Random;

public class ArraysNew {

    public static void main(String[] args) {
        int[] a;//定义了一个数组a
        Random random = new Random(10);//创建Random实例,使用单个 long  种子创建一个新的随机数生成器。这里指定了种子有什么作用呢?请看下一个实例2,输出结果惊人的相似。
        a = new int[random.nextInt(20)];
        System.out.println("length of a = "+a.length);
        System.out.println(Arrays.toString(a));
        
    }

}

很多人会问:1、为甚数组a的长度会是:13? 

                               因为在创建随机生成器时设置了一个种子,并且random.nextInt(20)中的20是随机数的上限,产生的随机数为0-20的整数,不                                 包括20。

                        2、为什么数组里边的值全部都是0?

                               数组原数中的基本数据类型值会自动初始化成空值(对于数字和字符就是0;对于布尔型就是false)。

                        3、为什么Random(10)方法里边会有一个10的参数?

当我们把这三个问题弄明白了Random()方法也就知道的8,9不离10了。

我们来一一作答,

首先看源程序

实例2

public class TestRandom { 

public static void main(String[] args) { // 案例2 // 对于种子相同的Random对象,生成的随机数序列是一样的。 
    Random ran1 = new Random(10); 
    System.out.println("使用种子为10的Random对象生成[0,10)内随机整数序列: ");
    for (int i = 0; i < 10; i++) { 
        System.out.print(ran1.nextInt(10) + " "); 
    }

}
System.out.println();
    Random ran2 = new Random(10);
    System.out.println("使用另一个种子为10的Random对象生成[0,10)内随机整数序列: ");
    for (int i = 0; i < 10; i++) { 
        System.out.print(ran2.nextInt(10) + " "); 
        }

}

输出结果:

使用种子为10的Random对象生成[0,10)内随机整数序列:

3 0 3 0 6 6 7 8 1 4

使用另一个种子为10的Random对象生成[0,10)内随机整数序列:

3 0 3 0 6 6 7 8 1 4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值