gpt4 book ai didi

java - 我可以将 long 类型的一维数组元素类型转换为 int 吗?

转载 作者:行者123 更新时间:2023-12-02 17:09:43 31 4
gpt4 key购买 nike

class Test {
public static void main(String[] args) {
long[] longarr = {40, 50, 70, 90};
int sum = 0;
for (int x: (int) longarr) {
sum += x;
}
System.out.println("sum is " + sum);
}
}

如何在不将 long 类型数组转换为 int 的情况下修复该错误。有什么办法可以做到吗?

最佳答案

您的代码存在一些问题:

  1. 你不能像这样将 long[] 转换为 int[] --> (int) longarr,所以你需要什么要做的就是将其保留为 for (int x: longarr) {...}
  2. 假设您已将其更改为 for (int x: longarr) {...},则会出现一个新错误,因为编译器无法将 long 显式转换为int 因此您可以将变量的类型更改为 for (long x: longarr) {...}
  3. 现在,您可以在应用求和之前将每个 long 转换为 int

这就是 @Meini 的方法所做的,但这里还有另一种方法:

int summation = Arrays.stream(longarr).mapToInt(v -> (int)v).sum();

请注意,这里需要 mapToInt 来实际获取您需要的 int 值,否则如果我们要直接分配 long 的总和对于 int 变量,编译器会提示 long 可以存储比 int 更大的值。

另一个版本:

int summation = (int)Arrays.stream(longarr).sum();

关于java - 我可以将 long 类型的一维数组元素类型转换为 int 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53882547/

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