我有一个二维数据数组,例如V[][]
,我想在ArrayTable个实例上批量设置。
我必须反复拨打ArrayTable.put(R rowKey, C columnKey, V value)
吗?
我找不到合适的构造函数/静态创建助手或方法,例如putAll(V[][] valueArr)
。
请告知。
答案 0 :(得分: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]);
}
}
答案 1 :(得分:0)
@ jBNizet说,番石榴没有任何帮助,因为图书馆不知道你想用什么作为钥匙。
您可以使用@JBNizet说的2个嵌套循环,或者您可以创建自己的Table实现来包装您的数组,然后调用putAll方法将您的新表复制到ArrayTable。
您不需要在Table上实现每个方法,您可能会对应该改变内容的方法抛出UnsupportedOperationException。