2014-02-07 31 views
1

我有一個數據的二維數組,例如V[][],我想批量設置一個ArrayTable實例。在Google Guava(Java)中,如何批量設置ArrayTable的值?

我必須重複撥打ArrayTable.put(R rowKey, C columnKey, V value)嗎?

我找不到合適的構造函數/靜態創建助手或方法,例如,putAll(V[][] valueArr)

請指教。

+2

行列鍵是什麼?數組中的索引?你只需要2個嵌套循環。我懷疑番石榴有什麼可以幫助你。 –

+0

@JBNizet:'V set(int rowIndex,int columnIndex,V value)'方法證明不需要行和列鍵來爲'ArrayTable'設置一個值。 – kevinarpe

回答

2

沒有這樣的構造函數。

你最好的選擇是:

ArrayTable table = ArrayTable.create(
    ContiguousSet.create(Range.closedOpen(0, v.length), 
         DiscreteDomain.integers()), 
    ContiguousSet.create(Range.closedOpen(0, v[0].length), 
         DiscreteDomain.integers())); 
for(int i = 0 ; i < v.length ; ++i) { 
    for(int j = 0 ; j < v[i].length ; ++j) { 
     table.set(i, j, v[i][j]); 
    } 
} 
0

有番石榴沒有幫助,因爲@JBNizet說,因爲圖書館可以不知道你要作爲鍵使用什麼。

您可以使用2個嵌套循環作爲@JBNizet說或者您可以創建自己的Table實現包裝您的數組,然後調用putAll方法將新表複製到ArrayTable。

您不需要在Table上實現每個方法,您可以對其他方法應該改變內容的方法拋出UnsupportedOperationException。

相關問題