我在Linear_Programming类中有以下数据结构。
ArrayList<ArrayList<Double>> constraint_temp ;
ArrayList<Double> B_value_temp;
ArrayList<Double> obj_func ;
我想通过以下代码将此对象传递给Simplex类构造函数。
Simplex smlpx = new Simplex(constraint_temp, B_value_temp,obj_func);
Simplex方法构造函数的原型如下:
public Simplex(double[][] A, double[] b, double[] c);
所以我需要一种方法将arraylist转换为数组。我怎样才能做到这一点 ?请建议我一个方法。
答案 0 :(得分:3)
首先,编写一种方法将List<Double>
转换为double[]
-
private static double[] fromList(List<Double> al) {
double[] out = new double[al.size()];
for (int i = 0;i < al.size(); i++) {
out[i] = al.get(i);
}
return out;
}
然后复杂的版本是二维参数a
,
double[][] a = new double[constraint_temp.size()][];
for (int i = 0; i < a.length; i++) {
a[i] = fromList(constraint_temp.get(i));
}
double[] b = fromList(B_value_temp);
double[] c = fromList(obj_func);
Simplex smlpx = new Simplex(a,b,c);