如何遍历番石榴桌? 我有这样一张桌子
0 --> 1 [16, 48, 32]
0 --> 2 [38, 19, 17, 28, 48]
0 --> 3 [37, 41, 31, 16]
1 --> 0 [19, 24, 37, 11, 14, 32]
1 --> 2 [45, 15, 37, 22]
1 --> 3 [22, 31, 16, 28, 33, 37]
2 --> 0 [15, 23, 49, 35]
2 --> 1 [48, 35, 21, 39]
2 --> 3 [24, 46, 22, 24, 41]
3 --> 0 [48, 11, 17, 25, 29]
3 --> 1 [34, 49, 19, 28]
3 --> 2 [49, 11, 47, 31]
我想找到行值和列值的总和以及它们之间的差异。 例如;
[(0-->1)+(0-->2)+(0-->3)]-[(1-->0)+(2-->0)+(3-->0)]
答案 0 :(得分:0)
如果您使用的是Guava的Table
数据结构,那么您可以通过rowKey
/ columnKey
轻松获取行/列值的集合。 e.g:
Random random = new Random();
ImmutableTable.Builder<Integer, Integer, Integer> builder = ImmutableTable.builder();
for (int rowKey = 0; rowKey < 4; rowKey++) {
for (int columnKey = 0; columnKey < 4; columnKey++) {
builder = builder.put(rowKey, columnKey, random.nextInt(100));
}
}
ImmutableTable<Integer, Integer, Integer> table = builder.build();
int rowSum = table.row(0).values().stream().mapToInt(Integer::intValue).sum();
int columnSum = table.column(0).values().stream().mapToInt(Integer::intValue).sum();
int difference = rowSum - columnSum;
如果您不能使用Java 8的Stream API然后对行/列求和,您仍然会使用table.row(rowKey).values()
/ table.column(columnKey).values()
来获取所需行/列中的值然后再写你自己的方法来对这些值求和。