1

dataset.addSeries 采用的参数如下(java.lang.Comparable key, double[] values, int bins, double minimum, double maximum)

现在,我正在尝试使用Long[] v1double[] values字段中调用的变量,但无法弄清楚如何转换它。

4

2 回答 2

1

来自 Jon Skeet 关于如何在 Java 中将浮点数组转换为双精度数组的回答?, 我引用:

基本上必须对每个值进行转换。两种数组类型之间没有隐式转换,因为在 JITting 之后用于处理它们的代码会有所不同——它们具有不同的元素大小,并且 long 需要转换,而 double 则不需要。将此与引用类型的数组协方差进行比较,其中读取数据时不需要转换(例如,字符串引用的位模式与对象引用相同)并且所有引用类型的元素大小相同。

简而言之,某些东西必须循环执行转换。我不知道有任何内置方法可以做到这一点。我确定它们存在于某个地方的第三方库中,但除非您碰巧已经在使用其中一个库,否则我只会编写您自己的方法。

以下是乔恩回答的改编实施以适合您的问题:

public static double[] convertLongsToDoubles(Long[] 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;
}
于 2013-04-18T20:05:31.123 回答
1

你将不得不自己做这件事。

编写一个为您进行转换的方法。

public static double[] convertFromLongToDouble(Long[] l) {
double[] doubleArray = new double[l.length];
     // .. iterate through the Long array and populate to double array
return doubleArray;
}
于 2013-04-18T20:13:42.803 回答