我有一個數據的二維數組,例如V[][]
,我想批量設置一個ArrayTable實例。在Google Guava(Java)中,如何批量設置ArrayTable的值?
我必須重複撥打ArrayTable.put(R rowKey, C columnKey, V value)
嗎?
我找不到合適的構造函數/靜態創建助手或方法,例如,putAll(V[][] valueArr)
。
請指教。
我有一個數據的二維數組,例如V[][]
,我想批量設置一個ArrayTable實例。在Google Guava(Java)中,如何批量設置ArrayTable的值?
我必須重複撥打ArrayTable.put(R rowKey, C columnKey, V value)
嗎?
我找不到合適的構造函數/靜態創建助手或方法,例如,putAll(V[][] valueArr)
。
請指教。
沒有這樣的構造函數。
你最好的選擇是:
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]);
}
}
有番石榴沒有幫助,因爲@JBNizet說,因爲圖書館可以不知道你要作爲鍵使用什麼。
您可以使用2個嵌套循環作爲@JBNizet說或者您可以創建自己的Table實現包裝您的數組,然後調用putAll方法將新表複製到ArrayTable。
您不需要在Table上實現每個方法,您可以對其他方法應該改變內容的方法拋出UnsupportedOperationException。
行列鍵是什麼?數組中的索引?你只需要2個嵌套循環。我懷疑番石榴有什麼可以幫助你。 –
@JBNizet:'V set(int rowIndex,int columnIndex,V value)'方法證明不需要行和列鍵來爲'ArrayTable'設置一個值。 – kevinarpe