2013-10-10 60 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是不是一個微型優化? –