计算 JAVA 中 short 类型数组的平均值
Calculation the average of short type array in JAVA
假设我在 JAVA 中有一个 short[] thisArray,我需要根据这个数组中元素的数量计算平均值。但显然,.length 将 return 一个 int 数字来表示 thisArray.
的长度
我无法将其转换为 int 数组或 int,因为不允许将 int 转换回 short。我确实需要一个简短的结果并将其存储回另一个 short[][]。
如何避免这个经典错误:
错误:不兼容的类型:从 int 到 short 的可能有损转换
短结果 = 总和 / 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 );
当您将 int
值分配给 short
变量时,编译器会保护您免于丢失数据。提供强制转换是告诉编译器您知道自己在做什么的常用方式,并且此操作没问题。
如果您确定平均值可以适合短变量,则只需转换结果:
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 中有一个 short[] thisArray,我需要根据这个数组中元素的数量计算平均值。但显然,.length 将 return 一个 int 数字来表示 thisArray.
的长度我无法将其转换为 int 数组或 int,因为不允许将 int 转换回 short。我确实需要一个简短的结果并将其存储回另一个 short[][]。
如何避免这个经典错误: 错误:不兼容的类型:从 int 到 short 的可能有损转换 短结果 = 总和 / 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 );
当您将 int
值分配给 short
变量时,编译器会保护您免于丢失数据。提供强制转换是告诉编译器您知道自己在做什么的常用方式,并且此操作没问题。
如果您确定平均值可以适合短变量,则只需转换结果:
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);