return 多个数组的方法
method to return more than one array
我有这个代码
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);
}
是否可以return三个Matrix CDF, SF 和 BDF 有什么建议吗?
提前致谢
一个函数不能 return 多个东西,但你可以 return 封装它们的单个对象。
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];
}
}
我将这些数组的操作和播种留作 reader 的练习。
没有。但是还有其他方法可以 return 所有数组:
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 回答的那样:使用字段
您可以 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;
}
double[][] ret = {CDF, PDF, SF};
return ret;
}
我有这个代码
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);
}
是否可以return三个Matrix CDF, SF 和 BDF 有什么建议吗? 提前致谢
一个函数不能 return 多个东西,但你可以 return 封装它们的单个对象。
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];
}
}
我将这些数组的操作和播种留作 reader 的练习。
没有。但是还有其他方法可以 return 所有数组:
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 回答的那样:使用字段
您可以 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;
}
double[][] ret = {CDF, PDF, SF};
return ret;
}