2012-07-16 1 views
0

이것은 의도적으로 설계된 것입니까?Guava TreeRow의 TreeBasedTable은 SortedMap을 구현하지만 정렬되지 않았습니다?

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

는 rowMap은 (SortedMap와 같은)가 정렬되지만 notSortedTreeRow이다 (TreeRow) 열 값] 정렬 가질 수있을 수 있도록 ?

편집 : 그것은 내 잘못, 나는 정수의 String 표현을했고 나는 그것을 지나치게 단순화 경우 숫자 문자열이 같은

뭔가 :-) 숫자 값을 기준으로 비교 하였다 인상에 있던 :

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에 대해 새 TreeMap을 할당하지 않고 TreeRow를 정렬하는 방법을 알지 못합니다. – lisak

+0

[이 질문] (http://stackoverflow.com/questions/7001582/java-sort-a-guava-treebasedtable?rq=1)이 도움이됩니까? –

답변

1

그냥 수행이 의 SortedMap입니다 TreeRow 객체 인스턴스입니다

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

한다. 그것은 RowSortedTable 인터페이스에 의해 guarateed이며, 자바에서는 불가능하기 때문에 Table's rowMap 인수를 덮어 쓰지 않습니다.

편집 :

여기에 원래의 질문에 대답 :

이 디자인인가?

예, Java의 디자인입니다.

+0

SortedMap 인터페이스를 구현한다는 것을 알고 있기 때문에 정렬되지 않은 반복 순서를 얻는 것이 이상하다. – lisak

+0

다른 어떤 것이어야하고, 사용하고있는 날짜와 함께 예제 코드를 보여줘야한다. – Xaerxess