Print all keys and value for HashBasedTable in Google Guava

后端 未结 2 1811
独厮守ぢ
独厮守ぢ 2021-01-07 21:51

I create and populate a Guava Table using the following code:

Table table = HashBasedTable.create();
table.put(\"A\", \"B\", 1         


        
2条回答
  •  耶瑟儿~
    2021-01-07 22:20

    Im not Guava user so this may be overkill (if it is true then will be glad for any info) but you can use table.rowMap() to get Map> which will represents data in table in form {A={B=1, C=2}, B={D=3}}. Then just iterate over this map like:

    Map> map = table.rowMap();
    
    for (String row : map.keySet()) {
        Map tmp = map.get(row);
        for (Map.Entry pair : tmp.entrySet()) {
            System.out.println(row+" "+pair.getKey()+" "+pair.getValue());
        }
    }
    

    or

    for (Map.Entry> outer : map.entrySet()) {
        for (Map.Entry inner : outer.getValue().entrySet()) {
            System.out.println(outer.getKey()+" "+inner.getKey()+" "+inner.getValue());
        }
    }
    

    or even better using com.google.common.collect.Table.Cell

    for (Cell cell: table.cellSet()){
        System.out.println(cell.getRowKey()+" "+cell.getColumnKey()+" "+cell.getValue());
    }
    

提交回复
热议问题