我有一个 float 组,我想将它转换为 Java 中的 double 组。我知道迭代数组并创建一个新数组的明显方式。我希望 Java 能够在希望使用 double[] 的情况下顺利消化 float[] ......但它不能使用这个。 进行这种转换的优雅、有效的方法是什么?
最佳答案
基本上something 必须对每个值进行转换。两种数组类型之间没有隐式转换,因为在 JITting 之后用于处理它们的代码会有所不同——它们具有不同的元素大小,并且 float 需要转换,而 double 则不需要。将此与引用类型的数组协方差进行比较,其中读取数据时不需要转换(例如,字符串引用的位模式与对象引用相同)并且元素大小对于所有引用类型都是相同的。
简而言之,something 必须循环执行转换。我不知道有任何内置方法可以做到这一点。我确定它们存在于某个地方的第三方库中,但除非您碰巧已经在使用其中一个库,否则我只会编写您自己的方法。为方便起见,这里有一个示例实现:
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;
}
关于java - 如何在Java中将 float 组转换为 double 组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2019362/