2013-10-10 34 views
0

我想在这种情况下添加值,在构造函数中,来自的ArrayList,而不是静态值:的ArrayList在构造

在CONSTRUCTOR静态值INSTANCE

v0.adjacencies = new Edge[]{ new Edge(v1, 79.83), 
          new Edge(v5, 81.15) }; 

我想用数组元素替换这些值。例如:

v0.adjacencies = new Edge[]{ VALUES FROM ArrayList (ar2edge) }; 

我从这个

for (int kk=0;kk<arvertex.size();kk++){ 
    Edge edges = new Edge(arvertex.get(kk),ar2.get(kk)); 
    ar2edge.add(edges); 
} 
+2

来自'ArrayList'的所有值?查看'toArray()'方法/ –

+0

问题是什么?你试过什么代码? –

+0

@SotiriosDelimanolis:做出答案。 –

回答

4

使用toArray() method得到阵列返回ArrayList的元素的数组。

Edge[] edges = ar2edge.toArray(new Edge[ar2edge.size()]); 

从上面的连接的Javadoc引用:

返回包含所有在此列表中的元素上以正确 序列的阵列(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的类型。如果列表适合 指定的数组,则返回其中。否则,将使用指定数组的运行时类型和此列表的大小 分配一个新阵列 。

这样,你声明你自己的数组的大小,toArray为你填充它。

+0

当你可以分配合适的大小时,分配一个空数组是不是浪费(甚至完全是最小的)? –

+0

更好地传递'新的边[ar2edge.size()]'。 –

+0

@SotiriosDelimanolis是不是一个微型优化? –