返回多个数组的方法

时间:2015-01-26 06:01:43

标签: java arrays return

我有这段代码

public static double[] PDF_CDF_SF(int Sojourn_Time[],double Shape_Factor[],int Num_Analysis_Years){
        double[] CDF=new double[Num_Analysis_Years];
        double[] PDF=new double[Num_Analysis_Years];
        double[] SF=new double[Num_Analysis_Years];
        for(int i=0;i<Num_Analysis_Years;i++){
                CDF[i]=1                    
                SF[i]=1-CDF[i];
                PDF[i]=1;
        }
        return (CDF,SF,BDF);
}

是否有可能退回三张Matrix CDF,SF和BDF您的建议是什么? 提前致谢

3 个答案:

答案 0 :(得分:3)

你不能从一个函数返回多个东西,但你可以返回一个封装它们的对象。

public class Tables {
    private double[] CDF;
    private double[] PDF;
    private double[] SF;

    public Tables(int analysisYears) {
        CDF = new int[analysisYears];
        PDF = new int[analysisYears];
        SF = new int[analysisYears];
    }

}

我将这些数组的操作和播种作为读者的练习。

答案 1 :(得分:0)

没有。但还有其他方法可以返回所有数组:
1)作为单个二维数组:
use double[] result = ArrayUtils.addAll(CDF,SF,BDF);
2)将它们放在另一个数组中作为其元素

double[][] result = new double[3][];

3)将它们放入List<double[]>

List<double[]> result = new LinkedList<double[]>();
result.add( CDF );
result.add( CDF );
result.add( CDF );

4)@Makoto回答:使用字段

答案 2 :(得分:0)

您可以将它们作为一个数组阵列返回:

public static double[][] PDF_CDF_SF(int Sojourn_Time[], double Shape_Factor[], int Num_Analysis_Years) {
    double[] CDF = new double[Num_Analysis_Years];
    double[] PDF = new double[Num_Analysis_Years];
    double[] SF = new double[Num_Analysis_Years];
    for (int i = 0; i < Num_Analysis_Years; i++) {
        CDF[i] = 1;
        SF[i] = 1 - CDF[i];
        PDF[i] = 1;
    }
    double[][] ret = {CDF, PDF, SF};
    return ret;
}