java - JAVA计算short类型数组的平均值

标签 java arrays primitive short

假设我在 JAVA 中有一个 short[] thisArray,我需要根据这个数组中元素的数量计算平均值。但显然,.length 将返回一个 int 数字来表示 thisArray 的长度。

我无法将其转换为 int 数组或 int,因为不允许将 int 转换回 short。我确实需要一个简短的结果并将其存储回另一个 short[][]。

如何避免这个经典错误: 错误:不兼容的类型:从 int 到 short 的可能有损转换 short result = sum/thisArray.length;

public static short getSum(short[] sumArray) {
  short sum = 0;
  for(short i : sumArray) {
    sum += i;
  }
  return sum;
}

sum = getSum(thisArray);

short result = sum / thisArray.length;

最佳答案

如果您确定平均值可以适合短变量,则只需转换结果:

short result = (short)(sum / thisArray.length);

我还将 sum 更改为 int,以降低溢出的风险(如果总和大于 32767,则可能发生溢出)。

总结:

public static int getSum(short[] sumArray) {
  int sum = 0;
  for(short i : sumArray) {
    sum += i;
  }
  return sum;
}

...

int sum = getSum(thisArray);

short result = (short) (sum / thisArray.length);

关于java - JAVA计算short类型数组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45475685/

相关文章:

java - Maven编译java报错diamond Operator is notsupported

java - 如何使用 ApacheConnector 在 Jersey 2 中选择密码套件?

c - 将整数数组传递给需要 C 中字符的函数

php - 使用数据库数据构造 php 数组

c++ - 如何使用编译时常量原语类型

java - 如何将 Maven 指向 Java 源代码依赖项?

java - 如何使用 Cloudinary api 从上传的视频中检索缩略图?

c - 将大写字母从 char 数组分离到新数组中,并在 C 中为其重新分配内存

java - Java中的原始数据类型是线程安全的吗

iphone - 在 Objective C 中声明、属性、合成和实现 int[] 数组