如何从对象数组创建双数组?

时间:2013-12-04 17:01:55

标签: java arrays object

例如,如果我有30个跑步者对象,都有getTime方法。我该怎么办runner[index ].getTime() = new Double Array

5 个答案:

答案 0 :(得分:2)

简单的循环会做

double[] times = new double[runner.length];
for(int i=0; i<runner.length; i++) {
  times[i] = runner[i].getTime();
}

答案 1 :(得分:1)

没有捷径。您分配新数组并执行循环,将旧数组中的对象的相关属性/方法调用值分配给新数组中的相应条目。

答案 2 :(得分:0)

没有快速的方法可以做到这一点。您将不得不创建一个新的Double数组,然后迭代原始数组,同时使用第一个数组中的相应值填充新数组。

for(int i = 0; i < runners.length; i++) {
    times[i] = runners[i].getTime();
}

答案 3 :(得分:0)

考虑一种功能性方法。使用Collection代替数组,并使用Google Guava的transform function

答案 4 :(得分:0)

public static double[] convertToDouble(type[] runner){
    double[] timeArray = new double[runner.length];
    for(int i = 0; i < runner.length; i++){
        timeArray[i] = runner[i].getTime();
    }
    return timeArray;
}

我不确定您的type对于输入数组是什么,因此请将type[]更改为您需要的类型。但是像上面这样的静态方法应该可行。

使用:

convertToDouble(runner);

编辑:请粘贴相关的代码。这可能不起作用,我对你对函数的输入感到困惑。它是一个阵列吗?这不是阵列吗?知道这会让我们更好地帮助你。