原文链接:Class – 03 – Random类常用方法详解析


相关文章:

  • Class – 01 – System类常用方法解析

  • Class – 02 – Arrays类常用方法解析

  • Class – 03 – Random类常用方法详解析

  • Class – 04 – Date类常用方法解析

  • Class – 05 – TimeUnit类常用方法解析

  • Class – 06 – TimeZone类常用方法详解析

  • Class – 07 – Modifier类常用方法解析

  • Class – 08 – Parameter类常用方法解析

  • Class – 09 – Field类常用方法解析

  • Class – 10 – Method类常用方法解析

  • Class – 11 – Math类常用方法解析

  • Class – 12 – Locale类常用方法解析

  • Class – 13 – ThreadPoolExecutor类常用方法解析


这次主要整理下 Java 中 Random 类的常用方法


一、Random 类的定义

  • Random 类位于 java.util 包中,主要用于生成伪随机数

  • Random 类将 种子数 作为随机算法的起源数字,计算生成伪随机数,其与生成的随机数字的区间无关

  • 创建 Random 实例时,若没有指定种子数,则会以当前时间作为种子数,来计算生成伪随机数

  • 拥有相同种子的 Random 实例,在相同次数下,生成的伪随机数完全相同

    Random random1 = new Random(10);
    Random random2 = new Random(10);
    System.out.println(random1.nextInt()); // -1157793070
    System.out.println(random2.nextInt()); // -1157793070
    

二、Random 类的常用方法

  • random.nextBoolean()

    • 用于从该随机数生成器的序列中得到下一个伪均匀分布的 boolean 值

      Random random = new Random();
      System.out.println(random.nextBoolean()); // true
      

  • random.nextBytes()

    • 用于生成随机 byte 值并将其放入用户提供的 byte 数组中

    • 生成的随机 byte 数等于 byte 数组的长度

      Random random = new Random();
      byte[] data = new byte[5];
      random.nextBytes(data);
      System.out.println(Arrays.toString(data)); // [29, 73, -58, -60, -101]
      

  • random.nextDouble()

    • 用于从该随机数生成器的序列中得到下一个伪均匀分布在 0.0 到 1.0 之间的 double 值,[0.0, 1.0)

      Random random = new Random();
      System.out.println(random.nextDouble()); // 0.07169148591770946
      

  • random.nextFloat()

    • 用于从该随机数生成器的序列中得到下一个伪均匀分布在 0.0 到 1.0 之间的 float 值,[0.0, 1.0)

      Random random = new Random();
      System.out.println(random.nextFloat()); // 0.35473615
      

  • random.nextInt()

    • 用于从该随机数生成器的序列中得到下一个伪均匀分布的 int 值

      Random random = new Random();
      System.out.println(random.nextInt()); // 1414623307
      
  • random.nextInt(int bound)

    • 用于从该随机数生成器的序列中得到下一个 0 到结束值之间伪均匀分布的 int 值,[0, 结束值)

      Random random = new Random();
      System.out.println(random.nextInt(10)); // 5
      

  • random.nextGaussian()

    • 用于从该随机数生成器的序列中得到下一个伪均匀分布的 double 值

    • 生成的 double 值符合均值为 0,方差为 1 的正态分布 (高斯分布)

      Random random = new Random();
      System.out.println(random.nextGaussian()); // 0.48039371890232446
      

  • random.setSeed(long seed)

    • 设置随机种子

      Random random = new Random();
      random.setSeed(10);
      

  • random.ints()

    • 用于得到一个有效无限的伪随机 int 值流

      Random random = new Random();
      IntStream ints = random.ints();
      ints.forEach(System.out::println);
      
  • random.ints(long streamSize)

    • 用于得到一个有限长度的伪随机 int 值流

      Random random = new Random();
      IntStream ints = random.ints(5);
      // -673281150 1081958281 -1955726845 133657651 -773829503
      ints.forEach(value -> System.out.print(value + " "));
      
  • random.ints(int randomNumberOrigin, int randomNumberBound)

    • 用于得到一个有效无限的范围在起始值到结束值之间的伪随机 int 值流,[起始值, 结束值)

      Random random = new Random();
      IntStream ints = random.ints(1, 5);
      ints.forEach(System.out::println);
      
  • random.ints(long streamSize, int randomNumberOrigin, int randomNumberBound)

    • 用于得到一个有限长度的范围在起始值到结束值之间的伪随机 int 值流,[起始值, 结束值)

      Random random = new Random();
      IntStream ints = random.ints(5, 1, 5);
      ints.forEach(value -> System.out.print(value + " ")); // 4 2 1 4 1
      

  • random.longs()

    • 用于得到一个有效无限的伪随机 long 值流

      Random random = new Random();
      LongStream longs = random.longs();
      longs.forEach(System.out::println);
      
  • random.longs(long streamSize)

    • 用于得到一个有限长度的伪随机 long 值流

      Random random = new Random();
      LongStream longs = random.longs(5);
      // -4253735830085011397 -81131290106869012 8737071083795249766 2189971428068815599 -6480079951366618766
      longs.forEach(value -> System.out.print(value + " "));
      
  • random.longs(int randomNumberOrigin, int randomNumberBound)

    • 用于得到一个有效无限的范围在起始值到结束值之间的伪随机 long 值流,[起始值, 结束值)

      Random random = new Random();
      LongStream longs = random.longs(1, 5);
      longs.forEach(System.out::println);
      
  • random.longs(long streamSize, int randomNumberOrigin, int randomNumberBound)

    • 用于得到一个有限长度的范围在起始值到结束值之间的伪随机 long 值流,[起始值, 结束值)

      Random random = new Random();
      LongStream longs = random.longs(5, 1, 5);
      longs.forEach(value -> System.out.print(value + " ")); // 1 1 3 1 4
      

  • random.doubles()

    • 用于得到一个有效无限的伪随机 double 值流

      Random random = new Random();
      DoubleStream doubles = random.doubles();
      doubles.forEach(System.out::println);
      
  • random.doubles(long streamSize)

    • 用于得到一个有限长度的伪随机 double 值流

      Random random = new Random();
      DoubleStream doubles = random.doubles(5);
      // 0.8920930039742779 0.17890662178269223 0.4357034705163628 0.923875379269902 0.935716401915742
      doubles.forEach(value -> System.out.print(value + " "));
      
  • random.doubles(int randomNumberOrigin, int randomNumberBound)

    • 用于得到一个有效无限的范围在起始值到结束值之间的伪随机 double 值流,[起始值, 结束值)

      Random random = new Random();
      DoubleStream doubles = random.doubles(1, 5);
      doubles.forEach(System.out::println);
      
  • random.doubles(long streamSize, int randomNumberOrigin, int randomNumberBound)

    • 用于得到一个有限长度的范围在起始值到结束值之间的伪随机 double 值流,[起始值, 结束值)

      Random random = new Random();
      DoubleStream doubles = random.doubles(5, 1, 5);
      // 1.3129824412519966 3.844270928219007 2.2465511715951845 3.2396684494598116 3.5435450122721313
      doubles.forEach(value -> System.out.print(value + " "));
      

Class -- 03 -- Random类常用方法详解析相关推荐

  1. Arrays类常用方法详解

    Java-Arrays类常用方法详解 一.Arrays类的定义 Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法二.Arrays类的常用方法 1.Arrays.asList( ...

  2. Java 之 Math类 常用方法详解

    Math类是数学工具,它是一个final类 ,不能被继承,也不能被创建对象.它提供的所有属性和方法都是static修饰 ,直接使用类名.方法名/属性来调用.接下来就介绍常用的Math类的方法~ 目录 ...

  3. Java反射 Class类常用方法详解

    获取一个类对应的Class类的方法 1.使用Object.getClass ()方法----引用类型的对象的获取方式 如果我们已经拿到了一个对象,可以使用这个对象的 getClass 方法获得一个 C ...

  4. Class -- 10 -- Method类常用方法解析

    原文链接:Class – 10 – Method类常用方法解析 相关文章: Class – 01 – System类常用方法解析 Class – 02 – Arrays类常用方法解析 Class – ...

  5. Class -- 08 -- Parameter类常用方法解析

    原文链接:Class – 08 – Parameter类常用方法解析 相关文章: Class – 01 – System类常用方法解析 Class – 02 – Arrays类常用方法解析 Class ...

  6. Class -- 09 -- Field类常用方法解析

    原文链接:Class – 09 – Field类常用方法解析 相关文章: Class – 01 – System类常用方法解析 Class – 02 – Arrays类常用方法解析 Class – 0 ...

  7. java中math的方法_Java中Math类常用方法代码详解

    近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新... public class Demo{ public static void mai ...

  8. java random函数用法_JAVA的Random类的用法详解

    Random类主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家. Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时 ...

  9. java Random类详解

    2019独角兽企业重金招聘Python工程师标准>>> Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时,随机算法的起 ...

最新文章

  1. 第十一届蓝桥杯省赛 A组 试题H:子串分值
  2. Opencv 使用cv2改变视频分辨率和尺寸
  3. IDEA 2017 安装后 关联SVN
  4. 解决ExcelReport导出Excel报Number of rules must not exceed 3错误的问题
  5. 又来说一下顺序~关于唯一索引和唯一约束的顺序
  6. Symbian和C++ SDK开发入门之应用程序
  7. “false”类型转换:string类型转boolean - 代码篇
  8. 亚马逊招聘,无人超市研发部门
  9. LINQ to SQL自定义映射表关系(1:N or 1:1)
  10. snmp信息的查询命令snmpwalk
  11. Bigasoft Audio Converter for Mac - 音频转换器
  12. 最受欢迎Java数据库访问框架(DAO层)
  13. P5018 对称二叉树
  14. Java动态数组ArrayList
  15. Excel——输入身份证号后三位显示为0的问题
  16. 读易[14]·远古卜卦算法分析与实现
  17. 怎么修改图片的kb大小?如何缩小照片kb?
  18. 软工实践 - 第二十二次作业 项目测评(团队)
  19. 【2017.11.30】3. Longest Substring Without Repeating Characters-最长字串不重复字符
  20. uniapp本地数据库_Uniapp教程|App/uni-app离线本地存储方案

热门文章

  1. Excel 技巧百例:随机填充数据
  2. 前端学习资料(禅意花园,菜鸟教程)
  3. 分形插值matlab,分形插值算法和MATLAB实验
  4. Axure RP原型发布到公司服务器
  5. 智慧街道空间导引及创新平台
  6. 蓝桥杯官网 试题 PREV-61 历届真题 装饰珠【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法
  7. 物联网MQTT协议分析和开源Mosquitto部署验证
  8. Ubuntu 肉鸡 记
  9. python分享文件_Python文件
  10. 椭圆的周长与面积_来自一张老外的作业纸