Java 使用具有长[]值的dataset.addSeries

Java 使用具有长[]值的dataset.addSeries,java,arrays,double,jfreechart,long-integer,Java,Arrays,Double,Jfreechart,Long Integer,dataset.addSeries采用的参数如下(java.lang.Comparable key, 双[]值, 内部垃圾箱, 双倍最小值, 双倍最大值) 现在,我试图在double[]values字段中使用一个名为Long[]v1的变量,但不知道如何转换它 从Jon Skeet的回答中,我引述: 基本上,每个值的转换都需要做一些事情。那里 这不是两种数组类型之间的隐式转换,因为 用于在JITting之后处理它们的代码会有所不同-它们有 如果元素大小不同,则long需要进行转换 替身不会。将其与

dataset.addSeries采用的参数如下
(java.lang.Comparable key,
双[]值,
内部垃圾箱,
双倍最小值,
双倍最大值)


现在,我试图在
double[]values
字段中使用一个名为
Long[]v1
的变量,但不知道如何转换它

从Jon Skeet的回答中,我引述:

基本上,每个值的转换都需要做一些事情。那里 这不是两种数组类型之间的隐式转换,因为 用于在JITting之后处理它们的代码会有所不同-它们有 如果元素大小不同,则long需要进行转换 替身不会。将其与阵列协方差进行比较以供参考 类型,其中读取数据时不需要转换( 字符串引用的位模式与对象引用的位模式相同, 例如),所有引用类型的元素大小都相同

简而言之,必须在循环中执行转换。我 不知道有什么内置的方法可以做到这一点。我相信他们存在于这个世界 第三方库在某处,但除非您碰巧正在使用 在这些库中,我只需要编写您自己的方法

以下是Jon回答的一个经过调整的实现,以适合您的问题:

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;
}
public静态双[]转换器LongtoDoubles(长[]输入)
{
如果(输入==null)
{
返回null;//或引发异常-由您选择
}
double[]输出=新的double[input.length];
for(int i=0;i
你必须自己做这件事

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

public static double[] convertFromLongToDouble(Long[] l) {
double[] doubleArray = new double[l.length];
     // .. iterate through the Long array and populate to double array
return doubleArray;
}

Jon Skeet抄袭了这个答案:。如果你要偷东西,我想最好的办法。