专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java修炼终极指南:30. 用伪随机数填充长数组

temp10 2024-09-08 09:29:23 java教程 38 ℃ 0 评论


当我们考虑用数据填充一个大数组时,可以考虑使用`Arrays.setAll()`和`Arrays.parallelSetAll()`方法。这些方法可以通过应用一个生成器函数来计算数组的每个元素来填充数组。

Java修炼终极指南:30. 用伪随机数填充长数组

由于我们需要用伪随机数据填充数组,我们应该考虑生成器函数应该是一个伪随机数生成器。如果我们考虑并行执行此操作,那么应该考虑`SplittableRandom`(JDK 8+)/`SplittableGenerator`(JDK 17+),它专门用于在隔离的并行计算中生成伪随机数。

总之,代码可能如下所示(JDK 17+):

SplittableGenerator splittableRndL64X256   
  = RandomGeneratorFactory  
     .<SplittableGenerator>of("L64X256MixRandom").create();  
long[] arr = new long[100_000_000];  
Arrays.parallelSetAll(arr,   
                      x -> splittableRndL64X256.nextLong());


或者,使用`SplittableRandom`(这次我们无法指定算法,JDK 8+):

SplittableRandom splittableRandom = new SplittableRandom();                  
long[] arr = new long[100_000_000];  
Arrays.parallelSetAll(arr, x -> splittableRandom.nextLong());


接下来,让我们看看如何创建伪随机数生成器的流。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表