2012-07-27 65 views
1

我打算使用番石榴表来存储表格格式的值。我想知道一些函数,它根据表中的值执行降序排序......您可以对此进行一些观点。谢谢。根据数值降序排列番石榴表

+0

[Java Sort a Guava TreeBasedTable]的可能的重复(http://stackoverflow.com/questions/7001582/java-sort-a-guava-treebasedtable) – 2012-07-27 21:44:45

回答

5

就像使用地图一样,您应该复制cellSet(),按值排序单元格,然后将其放入保存顺序ImmutableTable中。

Ordering<Table.Cell<String, String, Integer>> comparator = 
    new Ordering<Table.Cell<String, String, Integer>>() { 
    public int compare(
     Table.Cell<String, String, Integer> cell1, 
     Table.Cell<String, String, Integer> cell2) { 
     return cell1.getValue().compareTo(cell2.getValue()); 
    } 
}; 
// That orders cells in increasing order of value, but we want decreasing order... 
ImmutableTable.Builder<String, String, Integer> 
    sortedBuilder = ImmutableTable.builder(); // preserves insertion order 
for (Table.Cell<String, String, Integer> cell : 
    comparator.reverse().sortedCopy(table.cellSet())) { 
    sortedBuilder.put(cell); 
} 
return sortedBuilder.build(); 

无论如何,这或多或少都是你编写的用于排序地图的代码。

+0

谢谢你的回答..如果可能的话可以给你一瞥此链接或参考 – NandaKumar 2012-07-30 05:07:20

+0

完成。这有帮助吗? – 2012-07-30 09:48:28