java - random.longs(ARRAY_SIZE, 0, 100000) 返回长流,我想将此流转换为长数组。怎样才能做到呢?

标签 java arrays collections java-8 java-stream

我想生成一个长数字流,所以我使用了随机函数,然后使用 toArray() 将该流转换为数组。但是这个数组是在long[]中生成的,但是我想要在Long[]中。那么如何做到这一点

Long[] array1 = new Long[1000000];

Random random = new Random();

array1 = random.longs(ARRAY_SIZE, 0, 100000).toArray();

类型不匹配:无法从 long[] 转换为 Long[]

最佳答案

你可以这样做。但为什么使用 Long[] 而不是 long[] 的原始数组呢?原始类型的对象包装器有更多的开销。如果将它们分配给原始类型,则需要拆箱进行转换。

      Long[] array1 = new Long[ARRAY_SIZE];

      Random random = new Random();
      array1 = random.longs(ARRAY_SIZE, 0, 100000).boxed().toArray(Long[]::new);

关于java - random.longs(ARRAY_SIZE, 0, 100000) 返回长流,我想将此流转换为长数组。怎样才能做到呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58349635/

相关文章:

java - 聊天功能中出现 NullPointerException

java - JPA 和 Hibernate - 标准与 JPQL 或 HQL

java - 如何在 MacOSX 中为 JRE 7 安装无限强度 JCE?

javascript - 如何删除数组的多个顺序项 - JavaScript

java - Spring Web MVC 返回未处理的 View

java - 我如何让这个 IF 语句起作用?

java - java中设置长度数组的抽象方法?

java - 根据出现频率排列列表的元素(具有重复元素)

java - 如何对具有变量作为列表的列表进行排序

c# - Linq "Where"比 Linq "Select"贵吗?