TreeBasedTable的Guava TreeRow虽然实现了SortedMap但没有排序?

时间:2012-07-16 12:49:46

标签: java guava treetable

这是设计吗?

Map<String, Map<String, String>> rowMap = treeTable.rowMap();
Map<String, String> notSortedTreeRow = rowMap.get(rowId);

这样你就可以对rowMap进行排序(如SortedMap),但你不能排序notSortedTreeRow(TreeRow),它是[column,value]?

编辑:这是我的错,我有一个整数的字符串表示,我的印象是根据数值比较数字字符串: - )

如果我过度简化它,那就是这样:

TreeBasedTable<String, String, String> table = TreeBasedTable.create();

table.put("1", "8", "x");
table.put("1", "9", "x");
table.put("1", "10", "x");

Map<String,String> map = table.rowMap().get("1");

1 个答案:

答案 0 :(得分:1)

只是做:

SortedMap<String, String> sortedRow = (SortedMap<String, String>) rowMap.get(rowId);

因为 TreeRow对象实例,即SortedMap。它由RowSortedTable接口保护,并且它不会覆盖Table's rowMap参数,因为它在Java中是不可能的。

修改

在这里回答原始问题:

  

这是设计吗?

是的,这是Java的设计。