我有一个浮点数组,我想将其转换为Java中的双精度数组。我知道迭代数组并创建新数组的明显方法。我希望Java在希望与double []一起工作的地方能够平稳地消化float [] ...,但不能与此一起工作。进行这种转换的优雅,有效的方法是什么?
基本上,必须进行每个值的转换。两种数组类型之间没有隐式转换,因为在JITting之后用于处理它们的代码将有所不同-它们具有不同的元素大小,并且float需要转换,而double则不需要。将此与引用类型的数组协方差进行比较,在引用类型中,读取数据时不需要转换(例如,字符串引用作为对象引用的位模式相同),并且所有引用类型的元素大小均相同。
简而言之,有些东西必须循环执行转换。我不知道有任何内置方法可以做到这一点。我确定它们存在于第三方库中的某个地方,但是除非您碰巧已经在使用这些库之一,否则我只会编写您自己的方法。为了方便起见,下面是一个示例实现:
public static double[] convertFloatsToDoubles(float[] input)
{
if (input == null)
{
return null; // Or throw an exception - your choice
}
double[] output = new double[input.length];
for (int i = 0; i < input.length; i++)
{
output[i] = input[i];
}
return output;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句