在Google Guava中打印HashBasedTable的所有键和值
我使用以下代码创建并填充番石榴表
:
Table<String, String, Integer> table = HashBasedTable.create();
table.put("A", "B", 1);
table.put("A", "C", 2);
table.put("B", "D", 3);
我想知道如何迭代表并打印出每行的键和值?因此,所需的输出是:
A B 1
A C 2
B D 3
我使用以下代码创建并填充番石榴表
:
Table<String, String, Integer> table = HashBasedTable.create();
table.put("A", "B", 1);
table.put("A", "C", 2);
table.put("B", "D", 3);
我想知道如何迭代表并打印出每行的键和值?因此,所需的输出是:
A B 1
A C 2
B D 3
我不是番石榴用户,所以这可能是矫枉过正(如果这是真的,那么会很高兴得到任何信息),但你可以用来得到哪个将代表表格中的数据的形式。然后只需迭代此映射,如下所示:table.rowMap()
Map<String, Map<String, Integer>>
{A={B=1, C=2}, B={D=3}}
Map<String, Map<String, Integer>> map = table.rowMap();
for (String row : map.keySet()) {
Map<String, Integer> tmp = map.get(row);
for (Map.Entry<String, Integer> pair : tmp.entrySet()) {
System.out.println(row+" "+pair.getKey()+" "+pair.getValue());
}
}
或
for (Map.Entry<String, Map<String,Integer>> outer : map.entrySet()) {
for (Map.Entry<String, Integer> inner : outer.getValue().entrySet()) {
System.out.println(outer.getKey()+" "+inner.getKey()+" "+inner.getValue());
}
}
甚至更好地使用com.google.common.collect.Table.Cell
for (Cell<String, String, Integer> cell: table.cellSet()){
System.out.println(cell.getRowKey()+" "+cell.getColumnKey()+" "+cell.getValue());
}
您可以使用 :
System.out.println(Arrays.asList(table));
输出将为
[{A={B=1, C=2}, B={D=3}}]