2012-07-16 49 views
0

這是設計嗎?TreeBasedTable的Guava TreeRow沒有排序,儘管它實現了SortedMap?

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

,這樣你可以有rowMap排序(SortedMap的),但你不能有排序notSortedTreeRow(TreeRow),這是[列值]?

編輯:這是我的錯,我有一個整數的字符串表示和我的印象是,數字串是基於:-)

事情是這樣的數值進行比較,如果我過於簡化它:

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"); 
+0

我只是不知道如何得到TreeRow排序,而不爲每個TreeRow分配新的TreeMap。 – lisak 2012-07-16 12:59:37

+0

[這個問題](http://stackoverflow.com/questions/7001582/java-sort-a-guava-treebasedtable?rq=1)有幫助嗎? – 2012-07-16 13:17:00

回答

1

只要做到:

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

,因爲它 TreeRow對象實例,這是SortedMap的。它受到RowSortedTable接口的保護,並且不會覆蓋Table's rowMap參數,因爲它在Java中是不可能的。

編輯:

回答原來的問題在這裏:

設計是這樣嗎?

是的,它是由Java的設計。

+0

我知道它實現SortedMap接口,這就是爲什麼我得到未排序的迭代順序很奇怪 – lisak 2012-07-16 13:18:41

+0

它必須是別的東西,然後可能顯示示例代碼與您正在使用的某個日期。 – Xaerxess 2012-07-16 13:20:38

相關問題