gpt4 book ai didi

java - 使用 Java 8 将 int 数组转换为 long 数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:40:26 31 4
gpt4 key购买 nike

我试过几种方法都不成功。

this.tileUpdateTimeslong[]other.tileUpdateTimesint[]

this.tileUpdateTimes = Arrays.stream(other.tileUpdateTimes).toArray(size -> new long[size]);
this.tileUpdateTimes = Arrays.stream(other.tileUpdateTimes)
.map(item -> ((long) item)).toArray();

我该如何解决这个问题?

最佳答案

您需要使用 mapToLong操作。

int[] intArray = {1, 2, 3};
long[] longArray = Arrays.stream(intArray).mapToLong(i -> i).toArray();

或者,作为 Holger指出,在这种情况下,您可以直接使用 asLongStream() :

int[] intArray = {1, 2, 3};
long[] longArray = Arrays.stream(intArray).asLongStream().toArray();

原始流上的map 方法返回相同原始类型的流。在这种情况下,IntStream.map仍然会返回一个 IntStream

转换为long

.map(item -> ((long) item))

实际上会使代码无法编译,因为 IntStream.map 中使用的映射器预计会返回 intyou need an explicit cast to convert from the new casted long to int .

使用 .mapToLong(i -> i),它期望映射器返回一个 longint iis promoted自动转换为 long,因此您不需要强制转换。

关于java - 使用 Java 8 将 int 数组转换为 long 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882512/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com