在Google Guava(Java)中,如何批量设置ArrayTable的值?

我有一个二维数据数组,例如V[][] ,我想在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所说,番石榴没有帮助,因为图书馆不知道你想用什么作为钥匙。

您可以使用@JBNizet所说的2个嵌套循环,或者您可以创建自己的包含数组的Table实现,然后调用putAll方法将新表复制到ArrayTable。

您不需要在Table上实现每个方法,您可能会在不应该更改内容的方法上抛出UnsupportedOperationException。