我有这段代码
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您的建议是什么? 提前致谢
答案 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;
}