如何从Arraylist获取数组

时间:2014-07-07 06:15:36

标签: java arrays arraylist

我在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转换为数组。我怎样才能做到这一点 ?请建议我一个方法。

1 个答案:

答案 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);